mirror of
https://github.com/directus/directus.git
synced 2026-01-28 18:18:10 -05:00
fix repeater row not opening when created
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<v-item-group class="repeater">
|
||||
<v-item-group class="repeater" v-model="selection">
|
||||
<draggable :value="value" handle=".drag-handle" @input="onSort" :set-data="hideDragImage">
|
||||
<repeater-row
|
||||
v-for="(row, index) in value"
|
||||
@@ -20,7 +20,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, PropType, computed } from '@vue/composition-api';
|
||||
import { defineComponent, PropType, computed, ref } from '@vue/composition-api';
|
||||
import RepeaterRow from './repeater-row.vue';
|
||||
import { Field } from '@/types';
|
||||
import Draggable from 'vuedraggable';
|
||||
@@ -56,6 +56,8 @@ export default defineComponent({
|
||||
},
|
||||
},
|
||||
setup(props, { emit }) {
|
||||
const selection = ref<number[]>([]);
|
||||
|
||||
const showAddNew = computed(() => {
|
||||
if (props.disabled) return false;
|
||||
if (props.value === null) return true;
|
||||
@@ -64,7 +66,7 @@ export default defineComponent({
|
||||
return false;
|
||||
});
|
||||
|
||||
return { updateValues, onSort, removeItem, addNew, showAddNew, hideDragImage };
|
||||
return { updateValues, onSort, removeItem, addNew, showAddNew, hideDragImage, selection };
|
||||
|
||||
function updateValues(index: number, updatedValues: any) {
|
||||
emit(
|
||||
@@ -84,6 +86,7 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
function removeItem(row: any) {
|
||||
selection.value = [];
|
||||
if (props.value) {
|
||||
emit(
|
||||
'input',
|
||||
@@ -102,6 +105,9 @@ export default defineComponent({
|
||||
newDefaults[field.field!] = field.schema?.default_value;
|
||||
});
|
||||
|
||||
// select the new row
|
||||
selection.value = [props.value?.length || 0];
|
||||
|
||||
if (props.value !== null) {
|
||||
emit('input', [...props.value, newDefaults]);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user