import { Button, Fieldset, Group, rem, Stack, Textarea, TextInput } from "@mantine/core"; import { useCardPageContext } from "../../../../pages/CardsPage/contexts/CardPageContext.tsx"; import { useForm } from "@mantine/form"; import { CardService, ClientSchema, ClientService } from "../../../../client"; import { notifications } from "../../../../shared/lib/notifications.ts"; import ClientSelect from "../../../../components/Selects/ClientSelect/ClientSelect.tsx"; import { useEffect, useState } from "react"; import InlineButton from "../../../../components/InlineButton/InlineButton.tsx"; import { isEqual } from "lodash"; const ClientTab = () => { const { selectedCard: card, refetchCard } = useCardPageContext(); const [initialValues, setInitialValues] = useState>(card?.client ?? {}); const [client, setClient] = useState(card?.client ?? undefined); const form = useForm>( { initialValues, }, ); useEffect(() => { const data = card?.client ?? {}; setInitialValues(data); form.setValues(data); }, [card]); const isEditorDisabled = () => client?.id !== card?.client?.id; const handleSubmitClientInfo = (values: ClientSchema) => { ClientService.updateClient({ requestBody: { data: values, }, }) .then(({ ok, message }) => { if (!ok) { notifications.error({ message }); return; } refetchCard(); }) .catch(err => console.log(err)); }; const handleSelectClient = () => { if (!(card && client)) return; CardService.updateCardClient({ requestBody: { cardId: card?.id, clientId: client?.id, }, }) .then(({ ok, message }) => { if (!ok) { notifications.error({ message }); return; } refetchCard(); }) .catch(err => console.log(err)); }; const clientDataEditor = (
handleSubmitClientInfo(values as ClientSchema)) }>