import React, { useState, useEffect } from 'react'; import * as Yup from 'yup'; import { Formik } from 'formik'; import _ from 'lodash'; import { useDispatch, useSelector } from 'react-redux'; import { getMenus } from 'src/slices/menu'; import useAuth from 'src/hooks/useAuth'; import { Box, Button, Card, CardContent, CardHeader, Checkbox, CircularProgress, Divider, FormHelperText, Grid, Link, TextField, Typography } from '@material-ui/core'; import { Alert } from '@material-ui/lab'; import wait from 'src/utils/wait'; import axios from 'axios'; const CardForm = ({ item, index, menuItem, subMenu }) => { const [isAlertVisible, setAlertVisible] = useState(false); const [response, setResponse] = useState({}); const dispatch = useDispatch(); const { establishment } = useAuth(); useEffect(() => { console.log('running....') dispatch(getMenus(establishment._id)); }, []); const sendEdit = async values => { console.log(values, 'dette skal sendes inn'); const menu = _.cloneDeep(menuItem); let update = menu.sections[subMenu.index].items.splice([index], 1, values); const accessToken = window.localStorage.getItem('accessToken'); const config = { headers: { Auhorization: `Bearer ${accessToken}` } }; const data = await axios .put(`http://localhost:5000/api/menus/${menu._id}`, menu, config) .then(result => { setResponse(result); // Update state dispatch(getMenus(establishment._id)); return result; }) .catch(err => { setResponse(err); return new Promise(err); }); return data; }; return ( { try { // NOTE: Make API request // await wait(1000); await sendEdit(values); resetForm(); setStatus({ success: true }); setSubmitting(false); setAlertVisible(true); resetForm(); } catch (err) { console.error(err); setStatus({ success: false }); setErrors({ submit: err.message }); setSubmitting(false); } }} > {({ errors, handleBlur, handleChange, handleSubmit, isSubmitting, touched, values }) => ( {isAlertVisible && ( setAlertVisible(false)} severity={response.status ? 'success' : 'error'} > {response.status === 200 ? `Flott! Da er den oppdatert.` : 'Beklager, det har skjedd en feil. Din beskjed er ikke registrert'} )} {isSubmitting ? ( ) : (
{/* I have read the{' '} Terms and Conditions {Boolean(touched.policy && errors.policy) && ( {errors.policy} )} */}
)}
)}
); }; export default CardForm;