@cosmicdrift/kumiko-renderer 0.67.1 → 0.70.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/app/kumiko-screen.tsx +4 -4
- package/src/primitives.tsx +7 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-renderer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.70.0",
|
|
4
4
|
"description": "Platform-agnostic React renderer for Kumiko screens. Contains the shared logic — primitives-contract, hooks, KumikoScreen, navigation & SSE abstractions — that any platform-specific renderer (web, native) composes. No DOM, no EventSource, no react-dom.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@cosmicdrift/kumiko-framework": "0.
|
|
19
|
-
"@cosmicdrift/kumiko-headless": "0.
|
|
18
|
+
"@cosmicdrift/kumiko-framework": "0.70.0",
|
|
19
|
+
"@cosmicdrift/kumiko-headless": "0.70.0",
|
|
20
20
|
"react": "^19.2.6"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
@@ -1198,8 +1198,9 @@ function ConfigEditBody({
|
|
|
1198
1198
|
}
|
|
1199
1199
|
// Cascade-Disclosure + Maskenwerte nach dem Write nachziehen, sonst
|
|
1200
1200
|
// bleibt die Anzeige stale bis Reload — gleiche refetch-Calls wie onReset.
|
|
1201
|
-
|
|
1202
|
-
|
|
1201
|
+
// allSettled: der Write ist schon committed, ein gescheitertes Refetch
|
|
1202
|
+
// (stale Anzeige) darf das Erfolgsergebnis nicht in einen Fehler kippen.
|
|
1203
|
+
await Promise.allSettled([valuesQuery.refetch?.(), cascadeQuery.refetch?.()]);
|
|
1203
1204
|
return { validationBlocked: false, isSuccess: true, data: undefined };
|
|
1204
1205
|
},
|
|
1205
1206
|
[dispatcher, screen.configKeys, screen.scope, valuesQuery.refetch, cascadeQuery.refetch],
|
|
@@ -1275,8 +1276,7 @@ function ConfigEditBody({
|
|
|
1275
1276
|
qualifiedKey={screen.configKeys[fieldName]}
|
|
1276
1277
|
onReset={async (key, scope) => {
|
|
1277
1278
|
await dispatcher.write("config:write:reset", { key, scope });
|
|
1278
|
-
await valuesQuery.refetch?.();
|
|
1279
|
-
await cascadeQuery.refetch?.();
|
|
1279
|
+
await Promise.allSettled([valuesQuery.refetch?.(), cascadeQuery.refetch?.()]);
|
|
1280
1280
|
}}
|
|
1281
1281
|
/>
|
|
1282
1282
|
);
|
package/src/primitives.tsx
CHANGED
|
@@ -485,7 +485,14 @@ export type SectionProps = {
|
|
|
485
485
|
* (kein Header). RenderEdit lässt ihn weg, wenn er den Screen-Titel
|
|
486
486
|
* der Action-Bar 1:1 wiederholen würde. */
|
|
487
487
|
readonly title?: string;
|
|
488
|
+
/** Optionaler muted Untertitel unter dem Titel — gibt der Section
|
|
489
|
+
* Kontext statt nur ein Label (analog FormProps.subtitle). */
|
|
490
|
+
readonly subtitle?: ReactNode;
|
|
488
491
|
readonly children: ReactNode;
|
|
492
|
+
/** Optionaler Aktions-Slot am Fuß der Section (z.B. „In Finanzierung
|
|
493
|
+
* übernehmen"). Web rendert standalone eine abgehobene Footer-Row
|
|
494
|
+
* (border-t), innerhalb eines Forms eine rechtsbündige Button-Reihe. */
|
|
495
|
+
readonly actions?: ReactNode;
|
|
489
496
|
readonly testId?: string;
|
|
490
497
|
};
|
|
491
498
|
|