import { useState } from 'react'; import { Stack, Title, Group, Button, Badge, ActionIcon, Modal, Text, TextInput, Textarea, Card, Alert, } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { useTranslation } from 'react-i18next'; import { IconEdit, IconTrash, IconPlus, IconInfoCircle, IconCertificate } from '@tabler/icons-react'; import { notify, useErrorHandler, AdvancedTable, useServerTable, ModalFooter, type AdvancedColumn } from '@ema-platform/ui'; import { useGetCertificationsQuery, useCreateCertificationMutation, useUpdateCertificationMutation, useDeleteCertificationMutation, } from '../api/certification-api'; import type { Certification } from '../types/certification'; function CertificationForm({ editing, isSubmitting, onSubmit, onCancel, }: { editing: Certification | null; isSubmitting: boolean; onSubmit: (values: { nameEn: string; nameAm: string; descEn: string; descAm: string }, isEdit: boolean) => void; onCancel: () => void; }) { const { t } = useTranslation(); const [nameEn, setNameEn] = useState(editing?.name?.en ?? ''); const [nameAm, setNameAm] = useState(editing?.name?.am ?? ''); const [descEn, setDescEn] = useState(editing?.description?.en ?? ''); const [descAm, setDescAm] = useState(editing?.description?.am ?? ''); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!nameEn || !nameAm) { notify.error('Name fields are required'); return; } onSubmit({ nameEn, nameAm, descEn, descAm }, !!editing); }; return (
setNameEn(e.currentTarget.value)} size="sm" required /> setNameAm(e.currentTarget.value)} size="sm" required />