/
dropdead
/
frontend_trainee
Обзор
Документация
Войти
/
dropdead
/
frontend_trainee
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/components/CreateAdModal.tsx
65 строк
2 KB
Ivan
feat: readme.md, final fixes
12 сен 2024, 15:40
12 сен 2024, 15:40
d92c87a
Код
Авторство
О чём код?
import { Box, Modal, IconButton, Typography } from '@mui/material'; import { Close } from '@mui/icons-material'; import { useCreateAdvertisment } from '@/api/advertisments'; import { useNavigate } from 'react-router-dom'; import AdForm from '@/components/AdForm'; import type { NewAdvertisment } from '@/api/advertisments'; import useResponsiveStyles from '@/theme/useResponsiveStyles'; import { adCard } from '@/router/paths'; const CreateAdModal = ({ isOpen, handleClose }: { isOpen: boolean; handleClose: () => void }) => { const styles = useResponsiveStyles(); const { mutate, isPending } = useCreateAdvertisment(); const navigate = useNavigate(); const onSubmit = (data: NewAdvertisment) => { mutate(data, { onSuccess: (newData) => { handleClose(); navigate(`${adCard}${newData.id}`); }, }); }; return ( <Modal open={isOpen} onClose={handleClose} > <Box sx={{ ...styles.normalModal, ...styles.fullScreenModal, }} > <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', px: 2, pt: 2, }} > <Typography variant="h5">Создать новое объявление</Typography> <IconButton aria-label="close" onClick={handleClose} sx={{ position: 'relative', }} > <Close /> </IconButton> </Box> <AdForm onSubmit={onSubmit} isPending={isPending} /> </Box> </Modal> ); }; export default CreateAdModal;