-import { defineModel } from 'vue';
import Modal from 'dashboard/components/Modal.vue';
import { required } from '@vuelidate/validators';
import { useVuelidate } from '@vuelidate/core';
@@ -13,15 +12,18 @@ export default {
Modal,
},
props: {
+ show: {
+ type: Boolean,
+ default: false,
+ },
portal: {
type: Object,
default: () => ({}),
},
},
- emits: ['cancel'],
+ emits: ['cancel', 'update:show'],
setup() {
- const show = defineModel('show', { type: Boolean, default: false });
- return { v$: useVuelidate(), show };
+ return { v$: useVuelidate() };
},
data() {
return {
@@ -30,6 +32,14 @@ export default {
};
},
computed: {
+ localShow: {
+ get() {
+ return this.show;
+ },
+ set(value) {
+ this.$emit('update:show', value);
+ },
+ },
addedLocales() {
const { allowed_locales: allowedLocales } = this.portal.config;
return allowedLocales.map(locale => locale.code);
@@ -96,7 +106,7 @@ export default {
-
+
-import { defineModel } from 'vue';
import { required, minLength } from '@vuelidate/validators';
import { useVuelidate } from '@vuelidate/core';
import { useAlert, useTrack } from 'dashboard/composables';
@@ -10,6 +9,10 @@ import NameEmojiInput from './NameEmojiInput.vue';
export default {
components: { NameEmojiInput },
props: {
+ show: {
+ type: Boolean,
+ default: false,
+ },
portalName: {
type: String,
default: '',
@@ -23,10 +26,9 @@ export default {
default: '',
},
},
- emits: ['create', 'cancel'],
+ emits: ['create', 'cancel', 'update:show'],
setup() {
- const show = defineModel('show', { type: Boolean, default: false });
- return { v$: useVuelidate(), show };
+ return { v$: useVuelidate() };
},
data() {
return {
@@ -46,6 +48,14 @@ export default {
},
},
computed: {
+ localShow: {
+ get() {
+ return this.show;
+ },
+ set(value) {
+ this.$emit('update:show', value);
+ },
+ },
selectedPortalSlug() {
return this.$route.params.portalSlug
? this.$route.params.portalSlug
@@ -111,7 +121,7 @@ export default {
-
+
-import { defineModel } from 'vue';
import { required, minLength } from '@vuelidate/validators';
import { useVuelidate } from '@vuelidate/core';
import { useAlert, useTrack } from 'dashboard/composables';
@@ -10,6 +9,10 @@ import CategoryNameIconInput from './NameEmojiInput.vue';
export default {
components: { CategoryNameIconInput },
props: {
+ show: {
+ type: Boolean,
+ default: false,
+ },
portalName: {
type: String,
default: '',
@@ -27,10 +30,9 @@ export default {
default: '',
},
},
- emits: ['update', 'cancel'],
+ emits: ['update', 'cancel', 'update:show'],
setup() {
- const show = defineModel('show', { type: Boolean, default: false });
- return { v$: useVuelidate(), show };
+ return { v$: useVuelidate() };
},
data() {
return {
@@ -51,6 +53,14 @@ export default {
},
},
computed: {
+ localShow: {
+ get() {
+ return this.show;
+ },
+ set(value) {
+ this.$emit('update:show', value);
+ },
+ },
slugError() {
if (this.v$.slug.$error) {
return this.$t('HELP_CENTER.CATEGORY.ADD.SLUG.ERROR');
@@ -120,7 +130,7 @@ export default {
-
+
+
@@ -57,7 +31,6 @@ export default {
class="bg-white input dark:bg-slate-900"
:placeholder="placeholder"
:min-height="4"
- @input="handleInput"
/>
{
+ // items is a DataTransferItemList object which does not have forEach method
+ const itemsArray = Array.from(items);
+ itemsArray.forEach(item => {
if (item.kind === 'file') {
e.preventDefault();
const file = item.getAsFile();