2 changed files with 119 additions and 2 deletions
@ -0,0 +1,112 @@ |
|||
import { |
|||
Box, |
|||
Button, |
|||
FormLabel, |
|||
Input, |
|||
Modal, |
|||
ModalBody, |
|||
ModalCloseButton, |
|||
ModalContent, |
|||
ModalFooter, |
|||
ModalHeader, |
|||
ModalOverlay, |
|||
Select, |
|||
Textarea, |
|||
useDisclosure, |
|||
useToast, |
|||
} from '@chakra-ui/react' |
|||
import { useState } from 'react' |
|||
import { useSelector } from 'react-redux' |
|||
import { sendSMSRequest } from '../../services' |
|||
import { selectDeviceList } from '../../store/deviceListReducer' |
|||
|
|||
export default function SendSMS() { |
|||
const { isOpen, onOpen, onClose } = useDisclosure() |
|||
const deviceList = useSelector(selectDeviceList) |
|||
const toast = useToast() |
|||
|
|||
const [formData, setFormData] = useState({ |
|||
device: '', |
|||
receivers: '', |
|||
smsBody: '', |
|||
}) |
|||
|
|||
const handSend = (e) => { |
|||
e.preventDefault() |
|||
sendSMSRequest(formData.device, { |
|||
receivers: formData.receivers.replace(' ', '').split(','), |
|||
smsBody: formData.smsBody, |
|||
}) |
|||
|
|||
toast({ |
|||
title: 'Sending SMS...', |
|||
}) |
|||
onClose() |
|||
} |
|||
|
|||
const handleChange = (e) => { |
|||
setFormData({ |
|||
...formData, |
|||
[e.target.name]: e.target.value, |
|||
}) |
|||
} |
|||
|
|||
return ( |
|||
<> |
|||
<Button onClick={onOpen}>Start Sending</Button> |
|||
|
|||
<Modal isOpen={isOpen} onClose={onClose}> |
|||
<ModalOverlay /> |
|||
<ModalContent> |
|||
<ModalHeader>Send SMS</ModalHeader> |
|||
<ModalCloseButton /> |
|||
<ModalBody> |
|||
<Box> |
|||
<FormLabel htmlFor='device'>Select Device</FormLabel> |
|||
<Select |
|||
id='device' |
|||
name='device' |
|||
placeholder='Select Device' |
|||
onChange={handleChange} |
|||
value={formData.smsBody} |
|||
> |
|||
{deviceList.data.map((device) => ( |
|||
<option key={device._id} value={device._id}> |
|||
{device.model} |
|||
</option> |
|||
))} |
|||
</Select> |
|||
</Box> |
|||
<Box> |
|||
<FormLabel htmlFor='receivers'>Receiver</FormLabel> |
|||
<Input |
|||
placeholder='receiver' |
|||
name='receivers' |
|||
onChange={handleChange} |
|||
value={formData.receivers} |
|||
type='tel' |
|||
/> |
|||
</Box> |
|||
<Box> |
|||
<FormLabel htmlFor='smsBody'>SMS Body</FormLabel> |
|||
<Textarea |
|||
id='smsBody' |
|||
name='smsBody' |
|||
onChange={handleChange} |
|||
value={formData.smsBody} |
|||
/> |
|||
</Box> |
|||
</ModalBody> |
|||
<ModalFooter> |
|||
<Button variant='ghost' mr={3} onClick={onClose}> |
|||
Close |
|||
</Button> |
|||
<Button variant='outline' colorScheme='blue' onClick={handSend}> |
|||
Send |
|||
</Button> |
|||
</ModalFooter> |
|||
</ModalContent> |
|||
</Modal> |
|||
</> |
|||
) |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue