@weaverse/hydrogen 5.19.1 → 5.20.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.
@@ -20,6 +20,23 @@ export declare class WeaverseHydrogenItem extends WeaverseItemStore {
20
20
  constructor(initialData: HydrogenComponentData, weaverse: WeaverseHydrogen);
21
21
  /** Registered component definition for this item's type. */
22
22
  get Element(): HydrogenElement;
23
+ /**
24
+ * Override setData to flatten serialized `data` the same way the constructor
25
+ * does. Core's `initProject()` reuses item stores keyed by item id (identical
26
+ * ids across locales), and the inherited setData only shallow-merges the raw
27
+ * item — fresh settings would land under `_store.data` while the stale
28
+ * flattened values keep rendering.
29
+ *
30
+ * Schema defaults are re-applied ahead of incoming settings because a
31
+ * serialized payload can omit fields — or the optional `data` object itself —
32
+ * when values equal schema defaults. The stored nested `data` is also replaced
33
+ * so the public serialized state does not retain the previous locale payload.
34
+ *
35
+ * An empty update is the context-only refresh from `syncReusedInstance`: swap
36
+ * the store reference so memoized subscribers re-render, and leave the
37
+ * settings untouched.
38
+ */
39
+ setData: (update: Omit<ElementData, "id" | "type">) => ElementData;
23
40
  /**
24
41
  * Override getSnapShot to merge translation data when in translation mode.
25
42
  * Memoizes the result: returns the same object reference as long as
@@ -1 +1 @@
1
- {"version":3,"file":"WeaverseHydrogenRoot.d.ts","sourceRoot":"","sources":["../../src/WeaverseHydrogenRoot.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WeaverseHydrogenRoot.d.ts","sourceRoot":"","sources":["../../src/WeaverseHydrogenRoot.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@weaverse/hydrogen",
3
3
  "author": "Weaverse Team",
4
4
  "description": "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
5
- "version": "5.19.1",
5
+ "version": "5.20.0",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
8
8
  "typings": "dist/types/index.d.ts",
@@ -46,7 +46,7 @@
46
46
  "dependencies": {
47
47
  "@shopify/hydrogen": ">=2025.5",
48
48
  "@shopify/remix-oxygen": "3",
49
- "@weaverse/react": "5.19.1",
49
+ "@weaverse/react": "5.20.0",
50
50
  "@weaverse/schema": "0.13.1",
51
51
  "react": ">=19",
52
52
  "react-dom": ">=19",
@@ -107,6 +107,54 @@ export class WeaverseHydrogenItem extends WeaverseItemStore {
107
107
  return super.Element
108
108
  }
109
109
 
110
+ /**
111
+ * Override setData to flatten serialized `data` the same way the constructor
112
+ * does. Core's `initProject()` reuses item stores keyed by item id (identical
113
+ * ids across locales), and the inherited setData only shallow-merges the raw
114
+ * item — fresh settings would land under `_store.data` while the stale
115
+ * flattened values keep rendering.
116
+ *
117
+ * Schema defaults are re-applied ahead of incoming settings because a
118
+ * serialized payload can omit fields — or the optional `data` object itself —
119
+ * when values equal schema defaults. The stored nested `data` is also replaced
120
+ * so the public serialized state does not retain the previous locale payload.
121
+ *
122
+ * An empty update is the context-only refresh from `syncReusedInstance`: swap
123
+ * the store reference so memoized subscribers re-render, and leave the
124
+ * settings untouched.
125
+ */
126
+ setData = (update: Omit<ElementData, 'id' | 'type'>) => {
127
+ let source = update ?? {}
128
+ let { data, ...rest } = source
129
+ let isEmptyUpdate = Object.keys(source).length === 0
130
+
131
+ if (isEmptyUpdate) {
132
+ this._store = { ...this._store }
133
+ } else {
134
+ let type = source.type ?? this._store.type
135
+ let schema = this.weaverse.elementRegistry.get(type)?.schema
136
+ let isSerializedItem = 'id' in source && 'type' in source
137
+ let shouldNormalize = data !== undefined || isSerializedItem
138
+
139
+ if (schema && shouldNormalize) {
140
+ let { data: _previousData, ...store } = this._store
141
+ let schemaData = generateDataFromSchema(schema)
142
+ this._store = {
143
+ ...store,
144
+ ...(data === undefined ? {} : { data }),
145
+ ...schemaData,
146
+ ...data,
147
+ ...rest,
148
+ }
149
+ } else {
150
+ this._store = { ...this._store, ...source }
151
+ }
152
+ }
153
+
154
+ this.triggerUpdate()
155
+ return this.data
156
+ }
157
+
110
158
  /**
111
159
  * Override getSnapShot to merge translation data when in translation mode.
112
160
  * Memoizes the result: returns the same object reference as long as