import type { FormEvent } from 'react' import { PresentationFormHeader } from '../PresentationFormHeader' import { t } from '@/lib/i18n' import { PresentationFields } from './fields' import type { AuthorPresentationDraft } from './types' export interface PresentationFormProps { draft: AuthorPresentationDraft setDraft: (next: AuthorPresentationDraft) => void validationError: string | null error: string | null loading: boolean handleSubmit: (e: FormEvent) => Promise deleting: boolean handleDelete: () => void hasExistingPresentation: boolean } export function PresentationForm(props: PresentationFormProps): React.ReactElement { return (
) => { void props.handleSubmit(e) }} className="border border-neon-cyan/20 rounded-lg p-6 bg-cyber-dark space-y-4" >
{props.hasExistingPresentation ? : null}
) } function ValidationError(params: { message: string | null }): React.ReactElement | null { if (!params.message) { return null } return (

{params.message}

) } function DeleteButton(params: { onDelete: () => void; deleting: boolean }): React.ReactElement { return ( ) } function getSubmitLabel(params: { loading: boolean; deleting: boolean; hasExistingPresentation: boolean }): string { if (params.loading || params.deleting) { return t('publish.publishing') } return params.hasExistingPresentation ? t('presentation.update.button') : t('publish.button') }