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

40 lines
1.2 KiB
TypeScript
Executable File

import {useForm} from 'react-hook-form';
import React, {ReactNode} from 'react';
import {CrupdateResourceLayout} from '@common/admin/crupdate-resource-layout';
import {Trans} from '@common/i18n/trans';
import {EMPTY_PAGINATION_RESPONSE} from '@common/http/backend-response/pagination-response';
import {UpdateChannelPayload} from '@common/admin/channels/requests/use-update-channel';
import {useCreateChannel} from '@common/admin/channels/requests/use-create-channel';
interface Props {
defaultValues?: Partial<UpdateChannelPayload['config']>;
children: ReactNode;
}
export function CreateChannelPageLayout({defaultValues, children}: Props) {
const form = useForm<UpdateChannelPayload>({
defaultValues: {
content: EMPTY_PAGINATION_RESPONSE.pagination,
config: {
contentType: 'listAll',
contentOrder: 'created_at:desc',
nestedLayout: 'carousel',
...defaultValues,
},
},
});
const createChannel = useCreateChannel(form);
return (
<CrupdateResourceLayout
form={form}
onSubmit={values => {
createChannel.mutate(values);
}}
title={<Trans message="Add new channel" />}
isLoading={createChannel.isPending}
>
{children}
</CrupdateResourceLayout>
);
}