import React from 'react'
import { ImageUploadField } from '../ImageUploadField'
import { Button, Input, Textarea } from '../ui'
import { t } from '@/lib/i18n'
import type { SeriesDraft } from './createSeriesModalTypes'
import type { CreateSeriesModalController } from './useCreateSeriesModalController'
export function CreateSeriesModalView({ ctrl }: { ctrl: CreateSeriesModalController }): React.ReactElement {
return (
{!ctrl.canPublish ? : null}
)
}
function CreateSeriesModalHeader({ loading, onClose }: { loading: boolean; onClose: () => void }): React.ReactElement {
return (
{t('series.create.title')}
)
}
function NotAuthorWarning(): React.ReactElement {
return (
{t('series.create.error.notAuthor')}
)
}
function CreateSeriesForm({ ctrl }: { ctrl: CreateSeriesModalController }): React.ReactElement {
return (
)
}
function SeriesTextFields(params: {
draft: SeriesDraft
setDraft: (draft: SeriesDraft) => void
loading: boolean
canPublish: boolean
}): React.ReactElement {
const disabled = params.loading || !params.canPublish
return (
<>
params.setDraft({ ...params.draft, title: value })}
/>
params.setDraft({ ...params.draft, description: value })}
/>
params.setDraft({ ...params.draft, preview: value })}
/>
>
)
}
function SeriesCategoryField(params: {
draft: SeriesDraft
setDraft: (draft: SeriesDraft) => void
loading: boolean
canPublish: boolean
}): React.ReactElement {
const disabled = params.loading || !params.canPublish
return (
)
}
function SeriesCoverField({ draft, setDraft }: { draft: SeriesDraft; setDraft: (draft: SeriesDraft) => void }): React.ReactElement {
return (
setDraft({ ...draft, coverUrl: url })}
helpText={t('series.create.field.cover.help')}
/>
)
}
function SeriesError({ error }: { error: string | null }): React.ReactElement | null {
if (!error) {
return null
}
return (
)
}
function SeriesActions(params: { loading: boolean; canPublish: boolean; onClose: () => void }): React.ReactElement {
return (
)
}
function TextField(params: {
id: string
label: string
value: string
disabled: boolean
required: boolean
onChange: (value: string) => void
}): React.ReactElement {
return (
params.onChange(e.target.value)}
required={params.required}
disabled={params.disabled}
/>
)
}
function TextAreaField(params: {
id: string
label: string
value: string
disabled: boolean
required: boolean
rows: number
helpText?: string
onChange: (value: string) => void
}): React.ReactElement {
return (