import { ButtonContainer } from '@/components/button-container'; import { InputWithLabel } from '@/components/forms/input-with-label'; import { Button } from '@/components/ui/button'; import { useAppParams } from '@/hooks/use-app-params'; import { handleError } from '@/integrations/trpc/react'; import { zodResolver } from '@hookform/resolvers/zod'; import { Controller, useForm } from 'react-hook-form'; import { toast } from 'sonner'; import type { z } from 'zod'; import { zCreateReference } from '@openpanel/validation'; import { InputDateTime } from '@/components/ui/input-date-time'; import { useTRPC } from '@/integrations/trpc/react'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { popModal } from '.'; import { ModalContent, ModalHeader } from './Modal/Container'; type IForm = z.infer; interface AddReferenceProps { datetime?: string; } export default function AddReference({ datetime }: AddReferenceProps = {}) { const { projectId } = useAppParams(); const queryClient = useQueryClient(); const { register, handleSubmit, formState, control } = useForm({ resolver: zodResolver(zCreateReference), defaultValues: { title: '', description: '', projectId, datetime: datetime || new Date().toISOString(), }, }); const trpc = useTRPC(); const mutation = useMutation( trpc.reference.create.mutationOptions({ onSuccess() { queryClient.invalidateQueries(trpc.reference.pathFilter()); toast('Success', { description: 'Reference created.', }); popModal(); }, onError: handleError, }), ); return (
mutation.mutate(values))} > ( )} />
); }