();
+
+ const aineistoRoute: `aineistoNahtavilla.${string}` = `aineistoNahtavilla.${props.paakategoria.id}`;
+
+ const aineistot = watch(aineistoRoute);
+
+ return (
+ <>
+ {kategoriaInfoText[props.paakategoria.id]}
+ {!!projekti?.oid && !!aineistot?.length && (
+
+ )}
+
+ setSome(false)}
+ onSubmit={(newAineistot) => {
+ const value = aineistot || [];
+ newAineistot.forEach((aineisto) => {
+ if (!find(value, { dokumenttiOid: aineisto.dokumenttiOid })) {
+ value.push({ ...aineisto, kategoriaId: props.paakategoria.id, jarjestys: value.length });
+ }
+ });
+ setValue(aineistoRoute, value);
+ }}
+ />
+ >
+ );
+};
+
+type FormAineisto = FieldArrayWithId<
+ VuorovaikutusFormValues,
+ "suunnitteluVaihe.vuorovaikutus.esittelyaineistot",
+ "id"
+> &
+ Pick;
+
+interface AineistoTableProps {
+ kategoriaId: string;
+ projektiOid: string;
+}
+
+const AineistoTable = (props: AineistoTableProps) => {
+ const { control, formState, register, getValues, setValue } =
+ useFormContext();
+ const aineistoRoute: `aineistoNahtavilla.${string}` = `aineistoNahtavilla.${props.kategoriaId}`;
+ const { fields, remove } = useFieldArray({ name: aineistoRoute, control });
+
+ const columns = useMemo[]>(
+ () => [
+ {
+ Header: "Aineisto",
+ width: 250,
+ accessor: (aineisto) => {
+ const index = fields.findIndex((row) => row.dokumenttiOid === aineisto.dokumenttiOid);
+ const errorpath = props.kategoriaId;
+ const errorMessage = (formState.errors.aineistoNahtavilla?.[errorpath]?.[index] as any | undefined)?.message;
+ return (
+ <>
+
+ {errorMessage && {errorMessage}
}
+
+
+ >
+ );
+ },
+ },
+ {
+ Header: "Tuotu",
+ accessor: (aineisto) => (aineisto.tuotu ? formatDateTime(aineisto.tuotu) : undefined),
+ },
+ {
+ Header: "Kategoria",
+ accessor: (aineisto) => {
+ const options = aineistoKategoriat
+ .listKategoriat()
+ .reduce((accumulatedOptions, paakategoria) => {
+ accumulatedOptions.push({ label: paakategoria.nimi, value: paakategoria.id });
+ return accumulatedOptions;
+ }, []);
+ console.log(options);
+ return (
+