import * as React from 'react'; import Grid from '@mui/material/Grid'; import { Button, Container, Dialog, DialogActions, DialogContent, DialogTitle, TextField, Typography } from '@mui/material'; import MUIDataTable from "mui-datatables"; import { useAxios } from './axios'; import { useMutation, useQuery, useQueryClient } from 'react-query'; function ContactDialog({ open, onClose, contact, }) { const client = useAxios(); const queryClient = useQueryClient() const [uid, setUid] = React.useState(contact ? contact.uid : null); const [firstName, setFirstName] = React.useState(contact['first_name'] ?? ''); const [lastName, setLastName] = React.useState(contact['last_name'] ?? ''); const [middleName, setMiddleName] = React.useState(contact['middle_name'] ?? ''); const [telephone, setTelephone] = React.useState(contact['telephone'] ?? ''); const [street, setStreet] = React.useState(contact['street'] ?? ''); const [build, setBuild] = React.useState(contact['build'] ?? ''); const [buildK, setBuildK] = React.useState(contact['build_k'] ?? ''); const [apartment, setApartment] = React.useState(contact['apartment'] ?? ''); const commitCreate = useMutation(async (payload) => client.post('/api/contacts', payload), { onSuccess: () => { queryClient.invalidateQueries('contacts'); onClose(); } }); const commitUpdate = useMutation(async (payload) => client.put(`/api/contacts/${contact['uid']}`, payload), { onSuccess: () => { queryClient.invalidateQueries('contacts'); queryClient.invalidateQueries(['contact', contact['uid']]); onClose(); } }); const handleFormSubmit = (event) => { event.preventDefault(); const data = { first_name: firstName, last_name: lastName, middle_name: middleName, telephone: telephone, street: street, build: build, build_k: buildK, apartment: apartment }; if (contact['uid']) { commitUpdate.mutate(data); } else { commitCreate.mutate(data); } onClose(); }; const loadData = () => { console.log(contact); setUid(contact['uid'] ?? null); setFirstName(contact['first_name'] ?? ''); setLastName(contact['last_name'] ?? ''); setMiddleName(contact['middle_name'] ?? ''); setTelephone(contact['telephone'] ?? ''); setStreet(contact['street'] ?? ''); setBuild(contact['build'] ?? ''); setBuildK(contact['build_k'] ?? ''); setApartment(contact['apartment'] ?? ''); }; return ( Контакт
setFirstName(event.target.value)} fullWidth /> setLastName(event.target.value)} fullWidth /> setMiddleName(event.target.value)} fullWidth /> setTelephone(event.target.value)} fullWidth required /> setStreet(event.target.value)} fullWidth /> setBuild(event.target.value)} fullWidth /> setBuildK(event.target.value)} fullWidth /> setApartment(event.target.value)} fullWidth />
); } export default ContactDialog;