Textmengencheck: Ausrichtungs-Dropdown (hoch/quer) + robustes Laden
All checks were successful
Build & Deploy / deploy (push) Successful in 23s
All checks were successful
Build & Deploy / deploy (push) Successful in 23s
Formate werden zu Familien (family) gruppiert; hat eine Familie mehrere Ausrichtungen (orientation hoch/quer), erscheint ein zweites Dropdown. fetchCheckFormats faellt auf aktive Formate zurueck, falls show_check (vor dem Directus-Bootstrap) noch fehlt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -232,7 +232,13 @@ export type Product = {
|
||||
input_mode: 'text' | 'datei';
|
||||
};
|
||||
|
||||
export type Format = { id: number; key: string; name: string; product: number };
|
||||
export type Format = {
|
||||
id: number; key: string; name: string; product: number;
|
||||
/** Familie fürs Ausrichtungs-Dropdown (z. B. A5, A6). Leer = eigener Eintrag. */
|
||||
family?: string | null;
|
||||
/** Ausrichtung innerhalb der Familie. Leer = keine Wahl. */
|
||||
orientation?: 'hoch' | 'quer' | null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Produkt-Schlüssel, die für den angemeldeten Kunden individuell freigeschaltet
|
||||
@@ -274,11 +280,23 @@ export async function fetchFormats(): Promise<Format[]> {
|
||||
* öffentlichen Konfigurator bestellbar sind. Adress-Postkarten sind ausgenommen.
|
||||
*/
|
||||
export async function fetchCheckFormats(): Promise<Format[]> {
|
||||
const data = await request(
|
||||
'/items/formats?fields=id,key,name,product&filter[show_check][_eq]=true&limit=-1',
|
||||
const felder = 'fields=id,key,name,product,family,orientation';
|
||||
try {
|
||||
const data = await request(
|
||||
`/items/formats?${felder}&filter[show_check][_eq]=true&limit=-1`,
|
||||
{ auth: false },
|
||||
);
|
||||
const rows: Format[] = data?.data ?? [];
|
||||
if (rows.length) return rows;
|
||||
} catch {
|
||||
/* Feld show_check evtl. noch nicht angelegt → Fallback unten. */
|
||||
}
|
||||
// Fallback (z. B. vor dem Directus-Bootstrap): aktive Formate, damit der Check nutzbar bleibt.
|
||||
const aktiv = await request(
|
||||
`/items/formats?${felder}&filter[active][_eq]=true&limit=-1`,
|
||||
{ auth: false },
|
||||
);
|
||||
return data?.data ?? [];
|
||||
return aktiv?.data ?? [];
|
||||
}
|
||||
|
||||
/* ── Preis & Bestellung (Extension skrift-orders) ─────────────────────────── */
|
||||
|
||||
Reference in New Issue
Block a user