import { useEffect, useState } from "react"; import {ButtonTertiary} from "../../../../../components/ui/buttons/ButtonTertiary"; import InputGroup from "../../../../../components/ui/forms/InputGroup"; import InputRadioGroup from "../../../../../components/ui/input/InputRadioGroup"; import InputText from "../../../../../components/ui/input/InputText"; import CollapsibleRow from "../../../../../components/ui/tables/CollapsibleRow"; import { defaultTemplateBlock, TemplateBlockDto, TemplateBlockStyle, TemplateBlockStyles } from "./TemplateBlockUtils"; import { useApp } from "../../../../../hooks"; export default function TemplateBlockForm({ item, onUpdate }: { item?: TemplateBlockDto; onUpdate: (item: TemplateBlockDto) => void }) { const { t } = useApp(); const [state, setState] = useState(item || defaultTemplateBlock); useEffect(() => { onUpdate(state); // eslint-disable-next-line react-hooks/exhaustive-deps }, [state]); return (
setState({ ...state, style: value as TemplateBlockStyle })} options={TemplateBlockStyles.map((f) => f)} />
setState({ ...state, text: e.toString() })} />
{state.items.map((item, index) => ( { const items = state.items ?? []; items.splice(index, 1); setState({ ...state, items }); }} >
setState({ ...state, items: state.items.map((item, i) => (i === index ? { ...item, name: e?.toString() } : item)) })} /> setState({ ...state, items: state.items.map((item, i) => (i === index ? { ...item, value: e.toString() } : item)) })} />
))} setState({ ...state, items: [ ...(state.items ?? []), { name: "Item " + state.items.length + 1, value: "", }, ], }) } > {t("shared.add")}
); }