Helfer
getByPath
getByPath(
obj,path):any
Liest einen verschachtelten Wert aus einem Objekt per Pfad.
- Gibt
nullzurück, wenn der Key existiert aber den Wertnullhat. - Gibt
undefinedzurück, wenn der Key im Objekt nicht existiert.
Diese Unterscheidung ist der Grund für die Funktion: nur so können die
Widgets „Wert ist leer" (Platzhalter —) von „Pfad ist falsch"
(Entwickler-Hinweis) trennen.
Parameters
obj
any
Das Objekt, meist ein Query-Ergebnis aus der API.
path
string
Punkt-getrennter Pfad, z. B. "title.de". Zahlen adressieren
Array-Positionen ("0.title.de").
Returns
any
Der Wert, null bei vorhandenem Null-Wert, undefined bei
fehlendem Key.
Example
getByPath({ user: { name: "Ada" } }, "user.name"); // "Ada"
getByPath({ user: { name: null } }, "user.name"); // null
getByPath({ user: {} }, "user.name"); // undefined
import { getByPath } from '@gentics/cockpit/widgets';
getByPath({ user: { name: 'Ada' } }, 'user.name'); // 'Ada'
getByPath({ user: { name: null } }, 'user.name'); // null → Key existiert
getByPath({ user: {} }, 'user.name'); // undefined → Key fehlt
staticSource
staticSource(
data): () =>UseQueryResult<JsonObject,Error>
Wickelt ein bereits vorliegendes, statisches Objekt in eine Field-taugliche
Query-Quelle. Nützlich, wenn die Daten schon da sind (kein echter Query-Hook),
Field aber eine () => UseQueryResult-Funktion erwartet.
data === undefined wird als „lädt noch" (isPending) interpretiert → Skeleton.
Parameters
data
JsonObject | undefined
Returns
() => UseQueryResult<JsonObject, Error>
Macht aus einem fertigen Objekt eine Quelle in der Form, die die Widgets erwarten — ohne echten Query-Hook. Die zurückgegebene Funktion liefert genau drei Felder:
| Feld | Wert |
|---|---|
data | das übergebene Objekt |
isPending | true, solange data === undefined |
isPlaceholderData | immer false |
import { staticSource } from '@gentics/cockpit/widgets';
<Field dataSource={staticSource({ user: { name: 'Ada' } })} jsonPath="user.name" />
<Field dataSource={staticSource(undefined)} jsonPath="user.name" /> // Skeleton
isValidISODate
isValidISODate(
dateStr):boolean
Prüft, ob ein String ein ISO-Datum ist — und ob dieses Datum existiert.
Erlaubt ist YYYY-MM-DD mit optionaler Zeit (THH:mm:ss), optionalen
Millisekunden und optionalem Z. Alles andere ergibt false, auch
Nicht-Strings und Formate wie 15.01.2026. Die Widgets entscheiden damit, ob
ein Wert als Datum formatiert oder als Datum sortiert wird.
Parameters
dateStr
string
Der zu prüfende Wert.
Returns
boolean
true nur bei passendem Muster und gültigem Kalenderdatum —
"2026-02-31" ist deshalb false.
Example
isValidISODate("2026-01-15"); // true
isValidISODate("2026-01-15T08:30:00Z"); // true
isValidISODate("15.01.2026"); // false
Prüft einen String gegen das Muster YYYY-MM-DD mit optionaler Zeitangabe
(THH:mm:ss, optionale Millisekunden, optionales Z) und ob das Datum
tatsächlich existiert. Alles andere — auch Nicht-Strings — ergibt false.
isValidISODate('2026-01-15'); // true
isValidISODate('2026-01-15T08:30:00Z'); // true
isValidISODate('15.01.2026'); // false
formatRelativeDate
formatRelativeDate(
dateStr):string
Datum für die Anzeige: benannte Tage statt Zahlen, wo es sich anbietet.
Verglichen wird auf Tagesgrenze (die Uhrzeit spielt keine Rolle), gegen das Datum des aufrufenden Systems.
Parameters
dateStr
string | Date | null | undefined
Datum als ISO-String, Date, null oder undefined.
Returns
string
"Heute", "Gestern", "Morgen", sonst das Datum als
DD.MM.YYYY. Für leere Eingaben (null, undefined, "") ein "-".
Example
formatRelativeDate(new Date()); // "Heute"
formatRelativeDate("2026-01-15"); // "15.01.2026"
formatRelativeDate(null); // "-"
Gibt für Tagesgrenzen einen benannten Wert zurück, sonst das Datum in
DD.MM.YYYY:
| Eingabe | Ausgabe |
|---|---|
| heute | Heute |
| gestern | Gestern |
| morgen | Morgen |
| jedes andere Datum | 15.01.2026 |
null / undefined / leer | - |
