@snowcone-app/ui 0.3.1 → 0.4.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/CHANGELOG.md +13 -0
- package/dist/index.cjs +14 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/composed/HeroProductImage.tsx +14 -0
- package/src/patterns/RealtimeProvider.tsx +17 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#765](https://github.com/snowcone-app/snowcone-monorepo/pull/765) [`1d73014`](https://github.com/snowcone-app/snowcone-monorepo/commit/1d73014fef7c9eadb499c14677f85620df5f80c4) Thanks [@kevinsproles](https://github.com/kevinsproles)! - Surface realtime render errors as structured, machine-readable state instead of swallowing them.
|
|
8
|
+
- sdk: new `RealtimeRenderError` (`{code, message}`) mirrors the server's `{type:'error', code}` frame. Exposed as `renderError` on `RealtimeMockupState` / the `useRealtimeMockup` hook return, passed as a second `detail` argument to `onError` callbacks (hook, service callbacks, and `RenderSession.onError`), and cleared automatically once a later render succeeds. `mockupResults` intentionally keeps the last good renders on error so hosts can show "stale + error badge" instead of a blank panel.
|
|
9
|
+
- ui: `RealtimeProvider` exposes `renderError` on its context, and `HeroProductImage` renders a visible error badge with a stable `data-render-error="<code>"` attribute over the (kept) stale mockup when the realtime renderer rejects a render (e.g. `asset_not_allowed`).
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [[`1d73014`](https://github.com/snowcone-app/snowcone-monorepo/commit/1d73014fef7c9eadb499c14677f85620df5f80c4)]:
|
|
14
|
+
- @snowcone-app/sdk@0.17.0
|
|
15
|
+
|
|
3
16
|
## 0.3.1
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/index.cjs
CHANGED
|
@@ -5979,8 +5979,8 @@ function RealtimeProvider({
|
|
|
5979
5979
|
},
|
|
5980
5980
|
onAllMockupsRendered: (results) => {
|
|
5981
5981
|
},
|
|
5982
|
-
onError: (error) => {
|
|
5983
|
-
console.error(
|
|
5982
|
+
onError: (error, detail) => {
|
|
5983
|
+
console.error(`[RealtimeProvider] Render error [${detail.code}]:`, error);
|
|
5984
5984
|
}
|
|
5985
5985
|
});
|
|
5986
5986
|
const subscribeRTCTiming = (0, import_react24.useCallback)((_callback) => {
|
|
@@ -5990,6 +5990,7 @@ function RealtimeProvider({
|
|
|
5990
5990
|
const {
|
|
5991
5991
|
isConnected,
|
|
5992
5992
|
isConfigured,
|
|
5993
|
+
renderError,
|
|
5993
5994
|
mockupResults: rawMockupResults,
|
|
5994
5995
|
sendCanvasBlob: sendCanvasBlobRaw,
|
|
5995
5996
|
sendCanvasState: sendCanvasStateRaw,
|
|
@@ -6509,6 +6510,7 @@ function RealtimeProvider({
|
|
|
6509
6510
|
isEnabled,
|
|
6510
6511
|
isConnected,
|
|
6511
6512
|
isConfigured,
|
|
6513
|
+
renderError,
|
|
6512
6514
|
// Read from ref - this is a snapshot at render time, NOT reactive
|
|
6513
6515
|
// For reactive updates, use getMockupResultsImmediate() or subscribe functions
|
|
6514
6516
|
get mockupResults() {
|
|
@@ -6552,6 +6554,7 @@ function RealtimeProvider({
|
|
|
6552
6554
|
isEnabled,
|
|
6553
6555
|
isConnected,
|
|
6554
6556
|
isConfigured,
|
|
6557
|
+
renderError,
|
|
6555
6558
|
// mockupResults removed from deps - it's a getter that reads from ref
|
|
6556
6559
|
canvasExportSize,
|
|
6557
6560
|
mockupWidth,
|
|
@@ -10524,6 +10527,15 @@ var HeroProductImage = (0, import_react45.memo)(function HeroProductImage2({
|
|
|
10524
10527
|
}
|
|
10525
10528
|
}
|
|
10526
10529
|
),
|
|
10530
|
+
realtimeContext?.renderError && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
10531
|
+
"div",
|
|
10532
|
+
{
|
|
10533
|
+
role: "alert",
|
|
10534
|
+
"data-render-error": realtimeContext.renderError.code,
|
|
10535
|
+
className: "absolute inset-x-0 bottom-0 z-20 bg-red-600/90 text-white text-xs font-medium px-3 py-2 pointer-events-none",
|
|
10536
|
+
children: `Render blocked: ${realtimeContext.renderError.code} \u2014 ${realtimeContext.renderError.message}`
|
|
10537
|
+
}
|
|
10538
|
+
),
|
|
10527
10539
|
prevUrl && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
10528
10540
|
"img",
|
|
10529
10541
|
{
|