Skip to content

Commit 8e90761

Browse files
committed
Link fieldtype is reactive to value changes
1 parent cd4e9b3 commit 8e90761

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

resources/js/components/fieldtypes/LinkFieldtype.vue

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
<!-- Entry select -->
2424
<relationship-fieldtype
25-
v-if="option === 'entry'"
25+
v-show="option === 'entry'"
2626
ref="entries"
2727
handle="entry"
2828
:value="selectedEntries"
@@ -34,7 +34,7 @@
3434

3535
<!-- Asset select -->
3636
<assets-fieldtype
37-
v-if="option === 'asset'"
37+
v-show="option === 'asset'"
3838
ref="assets"
3939
handle="asset"
4040
:value="selectedAssets"
@@ -121,6 +121,28 @@ export default {
121121
this.selectedEntries = meta.initialSelectedEntries;
122122
this.selectedAssets = meta.initialSelectedAssets;
123123
this.$nextTick(() => this.metaChanging = false);
124+
},
125+
126+
value(value) {
127+
let option = this.option;
128+
129+
if (!value || !value.startsWith('entry::')) this.selectedEntries = [];
130+
if (!value || !value.startsWith('asset::')) this.selectedAssets = [];
131+
132+
if (value === null) {
133+
if (option === 'url') this.option = null;
134+
} else if (value === '@child') {
135+
this.option = 'first-child';
136+
} else if (value.startsWith('entry::')) {
137+
this.option = 'entry';
138+
this.selectedEntries = [value.replace('entry::', '')];
139+
} else if (value.startsWith('asset::')) {
140+
this.option = 'asset'
141+
this.selectedAssets = [value.replace('asset::', '')];
142+
} else {
143+
this.option = 'url';
144+
this.urlValue = value;
145+
}
124146
}
125147
126148
},

0 commit comments

Comments
 (0)