fix repeater row not opening when created

This commit is contained in:
Nitwel
2020-09-11 15:09:49 +02:00
parent 85c2948261
commit 201a88d06a

View File

@@ -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 {