@weaverse/hydrogen 5.19.0 → 5.19.2
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/dist/index.js +44 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -0
- package/dist/index.mjs.map +1 -1
- package/dist/types/WeaverseHydrogenRoot.d.ts +17 -0
- package/dist/types/WeaverseHydrogenRoot.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/WeaverseHydrogenRoot.tsx +48 -0
|
@@ -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.
|
|
5
|
+
"version": "5.19.2",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"typings": "dist/types/index.d.ts",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@shopify/hydrogen": ">=2025.5",
|
|
48
48
|
"@shopify/remix-oxygen": "3",
|
|
49
|
-
"@weaverse/react": "5.19.
|
|
50
|
-
"@weaverse/schema": "0.13.
|
|
49
|
+
"@weaverse/react": "5.19.2",
|
|
50
|
+
"@weaverse/schema": "0.13.1",
|
|
51
51
|
"react": ">=19",
|
|
52
52
|
"react-dom": ">=19",
|
|
53
53
|
"react-error-boundary": "^6",
|
|
@@ -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
|