Skip to content

Commit d4eccfd

Browse files
authored
[6.x] Fix some reactivity issues (#11775)
1 parent 4a95729 commit d4eccfd

5 files changed

Lines changed: 21 additions & 30 deletions

File tree

resources/js/components/fieldtypes/grid/ManagesRowMeta.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
export default {
22
methods: {
3-
updateRowMeta(row, value) {
3+
updateRowMeta(row, value, previews) {
44
this.updateMeta({
55
...this.meta,
66
existing: {
77
...this.meta.existing,
88
[row]: clone(value),
99
},
10+
previews: previews ? { ...this.meta.previews, [row]: previews } : this.meta.previews,
1011
});
1112
},
1213

resources/js/components/fieldtypes/replicator/ManagesPreviewText.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ export default {
88
return config.replicator_preview === undefined ? this.showFieldPreviews : config.replicator_preview;
99
});
1010

11-
return Object.values(previews)
11+
return previews
12+
.map(([handle, value]) => value)
1213
.filter((value) => {
1314
if (['null', '[]', '{}', ''].includes(JSON.stringify(value))) return null;
1415
return value;

resources/js/components/fieldtypes/replicator/ManagesSetMeta.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ export default {
44
mixins: [ManagesRowMeta],
55

66
methods: {
7-
updateSetMeta(set, value) {
8-
this.updateRowMeta(set, value);
7+
updateSetMeta(set, value, previews) {
8+
this.updateRowMeta(set, value, previews);
99
},
1010

1111
removeSetMeta(set) {

resources/js/components/fieldtypes/replicator/Replicator.vue

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
:collapsed="collapsed.includes(set._id)"
4545
:field-path-prefix="fieldPathPrefix || handle"
4646
:has-error="setHasError(index)"
47-
:previews="previews[set._id]"
47+
:previews="meta.previews[set._id]"
4848
:show-field-previews="config.previews"
4949
:can-add-set="canAddSet"
5050
@collapsed="collapseSet(set._id)"
@@ -111,7 +111,6 @@ export default {
111111
return {
112112
focused: false,
113113
collapsed: clone(this.meta.collapsed),
114-
previews: this.meta.previews,
115114
fullScreenMode: false,
116115
provide: {
117116
storeName: this.storeName,
@@ -209,9 +208,7 @@ export default {
209208
enabled: true,
210209
};
211210
212-
this.updateSetPreviews(set._id, {});
213-
214-
this.updateSetMeta(set._id, this.meta.new[handle]);
211+
this.updateSetMeta(set._id, this.meta.new[handle], {});
215212
216213
this.update([...this.value.slice(0, index), set, ...this.value.slice(index)]);
217214
@@ -226,17 +223,21 @@ export default {
226223
_id: uniqid(),
227224
};
228225
229-
this.updateSetPreviews(set._id, {});
230-
231-
this.updateSetMeta(set._id, this.meta.existing[old_id]);
226+
this.updateSetMeta(set._id, this.meta.existing[old_id], {});
232227
233228
this.update([...this.value.slice(0, index + 1), set, ...this.value.slice(index + 1)]);
234229
235230
this.expandSet(set._id);
236231
},
237232
238233
updateSetPreviews(id, previews) {
239-
this.previews[id] = previews;
234+
this.updateMeta({
235+
...this.meta,
236+
previews: {
237+
...this.meta.previews,
238+
[id]: previews,
239+
},
240+
});
240241
},
241242
242243
collapseSet(id) {
@@ -304,18 +305,6 @@ export default {
304305
collapsed(collapsed) {
305306
this.updateMeta({ ...this.meta, collapsed: clone(collapsed) });
306307
},
307-
308-
previews: {
309-
deep: true,
310-
handler(value) {
311-
if (JSON.stringify(this.meta.previews) === JSON.stringify(value)) {
312-
return;
313-
}
314-
const meta = this.meta;
315-
meta.previews = value;
316-
this.updateMeta(meta);
317-
},
318-
},
319308
},
320309
};
321310
</script>

resources/js/components/publish/Container.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ export default {
5555
data() {
5656
return {
5757
store: usePublishContainerStore(this.name, {
58-
blueprint: clone(this.blueprint),
59-
values: clone(this.values),
60-
extraValues: clone(this.extraValues),
61-
meta: clone(this.meta),
62-
localizedFields: clone(this.localizedFields),
58+
blueprint: this.blueprint,
59+
values: this.values,
60+
extraValues: this.extraValues,
61+
meta: this.meta,
62+
localizedFields: this.localizedFields,
6363
site: this.site,
6464
isRoot: this.isRoot,
6565
reference: this.reference,

0 commit comments

Comments
 (0)