import { XCircleIcon } from "@heroicons/react/20/solid"; import { AdminBarLayout } from "~/components/admin/ControlBar"; import { AdminActionButton, AdminActionLink } from "~/components/admin/common"; import Image from "next/image"; import { ResourceForm, type ResourceUpdateInput, } from "~/components/admin/resources/form"; import { useState } from "react"; import { useForm, type SubmitHandler } from "react-hook-form"; import { api } from "~/utils/api"; import { useRouter } from "next/router"; import { HeaderFooterLayout } from "~/layouts/HeaderFooterLayout"; import { QueryWaitWrapper } from "~/components/LoadingWrapper"; import { AuditoryResource } from "@prisma/client"; const EditResourcePage = () => { const router = useRouter(); const id = router.query["id"]?.toString() ?? ""; const resourceQuery = api.auditoryResource.byId.useQuery( { id }, { enabled: router.isReady } ); const ConditionalView = (data: AuditoryResource) => { const [serverError, setServerError] = useState( undefined ); const formMethods = useForm({ defaultValues: data as ResourceUpdateInput, }); const { mutate } = api.auditoryResource.update.useMutation({ onSuccess: async (_resData) => { if (!data) { setServerError("An unexpected error has occured"); return; } setServerError(undefined); await router.push(`/resources/${data.id}`); }, onError: (error) => setServerError(error.message), }); const onSubmit: SubmitHandler = (data) => { mutate(data); }; return ( save save } label="Save" onClick={() => { onSubmit(formMethods.getValues()); }} />, } label="Cancel" href={`/resources/${data.id}`} />, ]} >
); }; return ( ); }; export default EditResourcePage;