Files
mtdb_movie/resources/client/admin/people/crupdate/create-person-page.tsx
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

46 lines
1.3 KiB
TypeScript
Executable File

import {useForm} from 'react-hook-form';
import {
CreatePersonPayload,
useCreatePerson,
} from '@app/admin/people/requests/use-create-person';
import {CrupdateResourceLayout} from '@common/admin/crupdate-resource-layout';
import {Trans} from '@common/i18n/trans';
import React from 'react';
import {FileUploadProvider} from '@common/uploads/uploader/file-upload-provider';
import {useNavigate} from '@common/utils/hooks/use-navigate';
import {PersonPrimaryFactsForm} from '@app/admin/people/crupdate/person-primary-facts-form';
export function CreatePersonPage() {
const navigate = useNavigate();
const form = useForm<CreatePersonPayload>({
defaultValues: {
gender: 'female',
known_for: 'Acting',
popularity: 3,
},
});
const createPerson = useCreatePerson(form);
return (
<CrupdateResourceLayout
onSubmit={values =>
createPerson.mutate(values, {
onSuccess: response => {
navigate(`../${response.person.id}/edit`, {
relative: 'path',
replace: true,
});
},
})
}
form={form}
title={<Trans message="New person" />}
isLoading={createPerson.isPending}
disableSaveWhenNotDirty
>
<FileUploadProvider>
<PersonPrimaryFactsForm />
</FileUploadProvider>
</CrupdateResourceLayout>
);
}