@wipco/sdui 0.50.5 → 0.50.6

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.
Files changed (2) hide show
  1. package/dist/index.js +10 -3
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2830,6 +2830,11 @@ function SduiFragmentBody({
2830
2830
  }
2831
2831
  return /* @__PURE__ */ jsx(SduiFragmentChainContext.Provider, { value: nextChain, children: page.body.map((child, i) => renderChild(child, i, bodyScope, engine)) });
2832
2832
  }
2833
+ function urlSeedSettled(state, seeded, baseline) {
2834
+ return Object.keys(seeded).every(
2835
+ (key) => Object.is(state[key], seeded[key]) || !Object.is(state[key], baseline[key])
2836
+ );
2837
+ }
2833
2838
  function SduiRenderer({
2834
2839
  page,
2835
2840
  registry = defaultRegistry,
@@ -2882,7 +2887,9 @@ function SduiRenderer({
2882
2887
  }
2883
2888
  }
2884
2889
  if (Object.keys(seeded).length > 0) {
2885
- urlSeedPending.current = seeded;
2890
+ const baseline = {};
2891
+ for (const key of Object.keys(seeded)) baseline[key] = stateRef.current[key];
2892
+ urlSeedPending.current = { seeded, baseline };
2886
2893
  setEntries(seeded);
2887
2894
  }
2888
2895
  }, [page.urlState, setEntries, syncUrlState]);
@@ -2890,8 +2897,8 @@ function SduiRenderer({
2890
2897
  if (!syncUrlState || !page.urlState?.length || !urlSeeded.current || typeof window === "undefined") return;
2891
2898
  if (window.location.pathname !== urlHomePath.current) return;
2892
2899
  if (urlSeedPending.current) {
2893
- const seeded = urlSeedPending.current;
2894
- if (!Object.keys(seeded).every((key) => Object.is(state[key], seeded[key]))) return;
2900
+ const { seeded, baseline } = urlSeedPending.current;
2901
+ if (!urlSeedSettled(state, seeded, baseline)) return;
2895
2902
  urlSeedPending.current = null;
2896
2903
  }
2897
2904
  const params = new URLSearchParams(window.location.search);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipco/sdui",
3
- "version": "0.50.5",
3
+ "version": "0.50.6",
4
4
  "description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
5
5
  "keywords": [
6
6
  "sdui",