fix: handle object-format select_options from Paperless for Freigabe field
Build and Push Multi-Platform Images / build-and-push (push) Successful in 36s

Paperless may return extra_data.select_options as an array of objects
{id, label} instead of plain strings. This caused React error #31
when Ant Design tried to render an object as a child in the Select and
Table components.

- Backend: coerce option items to {id: string, label: string} regardless
  of whether Paperless returns strings or objects
- Frontend: normalize cf.value to a plain string before rendering or
  storing in state, guarding against object-typed values

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-26 07:01:39 +02:00
parent a0d67c7d1b
commit d5bc1bcee0
2 changed files with 24 additions and 9 deletions
@@ -98,9 +98,19 @@ export class FreigabeService {
const field = (fields as any[]).find((f: any) => f.id === FREIGABE_FIELD_ID);
if (!field) return [];
const options: string[] = field.extra_data?.select_options ?? [];
return options
const rawOptions: any[] = field.extra_data?.select_options ?? [];
return rawOptions
.filter((o) => o !== null && o !== undefined && o !== '')
.map((o) => ({ id: o, label: o }));
.map((o) => {
if (typeof o === 'object') {
// Paperless kann select_options als Objekte liefern
return {
id: String(o.id ?? o.value ?? o.label ?? ''),
label: String(o.label ?? o.name ?? o.id ?? ''),
};
}
return { id: String(o), label: String(o) };
})
.filter((o) => o.id !== '');
}
}