import React, { useState, useEffect, } from 'react' // import * as Yup from 'yup' import { Formik, Form, Field, } from 'formik' import { toast } from 'react-toastify' import { makeStyles } from '@material-ui/core/styles' import { green } from '@material-ui/core/colors' import { TimePicker } from 'formik-material-ui-pickers' import DateFnsUtils from '@date-io/date-fns' import ptBrLocale from "date-fns/locale/pt-BR" import { MuiPickersUtilsProvider, } from '@material-ui/pickers' import { Dialog, DialogContent, DialogTitle, Button, DialogActions, CircularProgress, TextField, Switch, FormControlLabel, } from '@material-ui/core' import api from '../../services/api' import { i18n } from '../../translate/i18n' import toastError from '../../errors/toastError' const useStyles = makeStyles((theme) => ({ root: { display: 'flex', flexWrap: 'wrap', }, multFieldLine: { display: 'flex', '& > *:not(:last-child)': { marginRight: theme.spacing(1), }, }, btnWrapper: { position: 'relative', }, buttonProgress: { color: green[500], position: 'absolute', top: '50%', left: '50%', marginTop: -12, marginLeft: -12, }, })) // const SessionSchema = Yup.object().shape({ // name: Yup.string() // .min(2, 'Too Short!') // .max(100, 'Too Long!') // .required('Required'), // }) const ConfigModal = ({ open, onClose, change }) => { const classes = useStyles() const initialState = { startTimeBus: new Date(), endTimeBus: new Date(), messageBus: '', businessTimeEnalbe: false, ticketTimeExpiration: new Date(), ticketExpirationMsg: '', ticketExpirationEnable: false, } const [config, setConfig] = useState(initialState) useEffect(() => { const fetchSession = async () => { try { const { data } = await api.get('/settings') setConfig({ startTimeBus: data.outBusinessHours.startTime, endTimeBus: data.outBusinessHours.endTime, messageBus: data.outBusinessHours.message, businessTimeEnalbe: data.outBusinessHours.value === 'enabled' ? true : false, ticketTimeExpiration: data.ticketExpiration.startTime, ticketExpirationMsg: data.ticketExpiration.message, ticketExpirationEnable: data.ticketExpiration.value === 'enabled' ? true : false }) } catch (err) { toastError(err) } } fetchSession() }, [change]) const handleSaveConfig = async (values) => { values = { outBusinessHours: { startTime: values.startTimeBus, endTime: values.endTimeBus, message: values.messageBus, value: values.businessTimeEnalbe ? 'enabled' : 'disabled' }, ticketExpiration: { startTime: values.ticketTimeExpiration, message: values.ticketExpirationMsg, value: values.ticketExpirationEnable ? 'enabled' : 'disabled' } } try { await api.put(`/settings/ticket`, values) toast.success('Atualização realizada com sucesso!') handleClose() } catch (err) { toastError(err) } } const handleClose = () => { onClose() // setConfig(initialState) } return (