import React, { useState, useEffect, useRef } from 'react'; import Button from '@mui/material/Button'; import Dialog from '@mui/material/Dialog'; import DialogActions from '@mui/material/DialogActions'; import DialogContent from '@mui/material/DialogContent'; import DialogContentText from '@mui/material/DialogContentText'; import DialogTitle from '@mui/material/DialogTitle'; import PropTypes from 'prop-types'; import Box from '@mui/material/Box'; import SelectField from "../../Report/SelectField"; import DatePicker from '../../Report/DatePicker' import TimerPickerSelect from '../TimerPickerSelect' import TextArea1 from '../TextArea' import TextareaAutosize from '@mui/material/TextareaAutosize'; import { subHours, addHours } from "date-fns"; import { LocalConvenienceStoreOutlined } from '@material-ui/icons'; const Item = (props) => { const { sx, ...other } = props; return ( (theme.palette.mode === 'dark' ? '#101010' : '#fff'), color: (theme) => (theme.palette.mode === 'dark' ? 'grey.300' : 'grey.800'), border: '1px solid', borderColor: (theme) => theme.palette.mode === 'dark' ? 'grey.800' : 'grey.300', p: 1, m: 1, borderRadius: 2, fontSize: '0.875rem', fontWeight: '700', ...sx, }} {...other} /> ); } Item.propTypes = { sx: PropTypes.oneOfType([ PropTypes.arrayOf( PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool]), ), PropTypes.func, PropTypes.object, ]), }; const Modal = (props) => { const [open, setOpen] = useState(true); const [scroll, /*setScroll*/] = useState('body'); const [scheduleId, setScheduling] = useState(null) const [startDate, setDatePicker] = useState(new Date()) const [timerPicker, setTimerPicker] = useState(new Date()) const [textArea1, setTextArea1] = useState() const [greetRemember, setGreet] = useState('') const [data] = useState(props.schedules) const [chatEnd, setChatEnd] = useState(false) const handleCancel = (event, reason) => { if (reason && reason === "backdropClick") return; setChatEnd(null) setOpen(false); }; function greetMessageSchedule(scheduleDate){ return `podemos confirmar sua consulta agendada para hoje às ${scheduleDate}?` } function formatedTimeHour(timer){ return `${timer.getHours().toString().padStart(2, '0')}:${timer.getMinutes().toString().padStart(2, '0')}` } const handleChatEnd = (event, reason) => { if (reason && reason === "backdropClick") return; if (scheduleId === '1'){ } else if(textArea1.trim().length<10){ alert('Mensagem muito curta!\nMínimo 10 caracteres.') return } else if((new Date(timerPicker).getHours() > 16 && new Date(timerPicker).getMinutes() > 0) || (new Date(timerPicker).getHours() < 7)){ alert('Horário comercial inválido!\n Selecione um horário de lembrete válido entre às 07:00 e 17:00') return } else if((new Date(startDate).toISOString().slice(0, 10) === new Date().toISOString().slice(0, 10))){ if(((new Date(timerPicker).getHours() == new Date().getHours()) && (new Date(timerPicker).getMinutes() <= new Date().getMinutes())) || (new Date(timerPicker).getHours() < new Date().getHours()) ){ alert('Para agendamentos do dia, é necessário que o horário do lembrete seja maior que o horário atual!') return } } setChatEnd({ 'scheduleId': scheduleId, 'schedulingDate': `${startDate} ${timerPicker.getHours()}:${timerPicker.getMinutes()}:${timerPicker.getSeconds()}`, 'message': textArea1 }) setOpen(false); }; useEffect(()=>{ props.func(chatEnd); }, [chatEnd]) const descriptionElementRef = useRef(null); useEffect(() => { if (open) { const { current: descriptionElement } = descriptionElementRef; if (descriptionElement !== null) { descriptionElement.focus(); } } }, [open]); // Get from child 1 const textFieldSelect = (data) => { console.log('textFieldSelect: ',data); setScheduling(data) } // Get from child 2 const datePickerValue = (data) => { console.log('datePickerValue: ',(data)); setDatePicker(data) } // Get from child 3 const timerPickerValue = (data) => { console.log('timerPickerValue: ',(data)); setTimerPicker(data) } // Get from child 4 // const textArea1Value = (data) => { // console.log('textArea1Value: ',(data)); // setTextArea1(data) // } useEffect(()=>{ if (parseInt(timerPicker.getHours()) > 12 && parseInt(timerPicker.getHours()) < 18){ setTextArea1('Boa tarde, '+greetMessageSchedule( formatedTimeHour(addHours(new Date(timerPicker), 1)))) } else if(parseInt(timerPicker.getHours()) < 12){ setTextArea1('Bom dia, '+greetMessageSchedule( formatedTimeHour(addHours(new Date(timerPicker), 1)))) } else if(parseInt(timerPicker.getHours()) > 18){ setTextArea1('Boa noite, '+greetMessageSchedule( formatedTimeHour(addHours(new Date(timerPicker), 1)))) } // console.log( // 'addHours(new Date(timerPicker), 1): ', addHours(new Date(timerPicker), 1).getHours(), // '\naddHours(new Date(timerPicker), 1): ', addHours(new Date(timerPicker), 1).getMinutes() // ) },[timerPicker]) const handleChange = (event) => { setTextArea1(event.target.value); }; return ( {props.modal_header} Selecione uma opção para encerrar o Atendimento { return {'value': obj.id, 'label': obj.name} })}/> {scheduleId==='2' && Lembrete de retorno {/* */} }
); } export default Modal