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 StudentDialog({ open, onClose, student, }) { const client = useAxios(); const queryClient = useQueryClient() const [uid, setUid] = React.useState(student ? student.uid : null); const [firstName, setFirstName] = React.useState(student['first_name'] ?? ''); const [lastName, setLastName] = React.useState(student['last_name'] ?? ''); const [middleName, setMiddleName] = React.useState(student['middle_name'] ?? ''); const [discipline, setDiscipline] = React.useState(student['discipline'] ?? ''); const [mark, setMark] = React.useState(student['mark'] ?? ''); const commitCreate = useMutation(async (payload) => client.post('/api/students', payload), { onSuccess: () => { queryClient.invalidateQueries('students'); onClose(); } }); const commitUpdate = useMutation(async (payload) => client.put(`/api/students/${student['uid']}`, payload), { onSuccess: () => { queryClient.invalidateQueries('students'); queryClient.invalidateQueries(['student', student['uid']]); onClose(); } }); const handleFormSubmit = (event) => { event.preventDefault(); const data = { first_name: firstName, last_name: lastName, middle_name: middleName, discipline: discipline, mark: mark, }; if (student['uid']) { commitUpdate.mutate(data); } else { commitCreate.mutate(data); } onClose(); }; const loadData = () => { console.log(student); setUid(student['uid'] ?? null); setFirstName(student['first_name'] ?? ''); setLastName(student['last_name'] ?? ''); setMiddleName(student['middle_name'] ?? ''); setDiscipline(student['discipline'] ?? ''); setMark(student['mark'] ?? ''); }; return ( Студент
setFirstName(event.target.value)} fullWidth /> setLastName(event.target.value)} fullWidth /> setMiddleName(event.target.value)} fullWidth /> setDiscipline(event.target.value)} fullWidth required /> setMark(event.target.value)} fullWidth />
); } export default StudentDialog;