From fe523f51085ba252c0abca75aec26246f15e1b05 Mon Sep 17 00:00:00 2001 From: NathanViaud <79544144+NathanViaud@users.noreply.github.com> Date: Fri, 20 Jan 2023 16:41:58 +0100 Subject: [PATCH] not working transition-group This example work on an external project --- .../components/inputs/card/CardGroup.vue | 68 +++++++++++++------ 1 file changed, 48 insertions(+), 20 deletions(-) diff --git a/src/features/forms/components/inputs/card/CardGroup.vue b/src/features/forms/components/inputs/card/CardGroup.vue index 54f15368..52defc6f 100644 --- a/src/features/forms/components/inputs/card/CardGroup.vue +++ b/src/features/forms/components/inputs/card/CardGroup.vue @@ -3,6 +3,7 @@ import { Card } from '@/src/shared/interfaces'; import AddCard from './AddCard.vue'; import CardInput from './CardInput.vue'; import draggable from 'vuedraggable'; +import { ref } from 'vue'; defineProps<{ type: string; @@ -19,34 +20,61 @@ const emit = defineEmits<{ (e: 'swapCard', event): void; }>(); +const drag = ref(false); + +const dragOptions = ref({ + animation: 200, + group: 'cards', + disabled: false, + ghostClass: 'ghost', +}); </script> <template> <h3 v-if="fieldName" class="field-title"><span v-if="fieldIndex" class="field-index">{{ fieldIndex }}. </span>{{ fieldName }}</h3> <hr v-if="fieldName" class="separator"> - <draggable - :model-value="cards" - item-key="index" - handle=".card-header" - ghost-class="ghost" - @change="emit('swapCard', $event)" - > - <template #item="{element, index}"> - <CardInput - :pos="index + 1" - :card="element" - :is-last="index === cards.length - 1" - @input="element.value = $event" - @delete-card="emit('deleteCard', index)" - @move-up-card="emit('moveUpCard', index)" - @move-down-card="emit('moveDownCard', index)" - /> - </template> - </draggable> + <transition-group> + <draggable + key="draggable" + :model-value="cards" + item-key="index" + handle=".card-header" + ghost-class="ghost" + v-bind="dragOptions" + @change="emit('swapCard', $event)" + @start="drag = true" + @end="drag = false" + > + <template #item="{element, index}"> + <CardInput + :key="index" + class="list-group-item" + :pos="index + 1" + :card="element" + :is-last="index === cards.length - 1" + @input="element.value = $event" + @delete-card="emit('deleteCard', index)" + @move-up-card="emit('moveUpCard', index)" + @move-down-card="emit('moveDownCard', index)" + /> + </template> + </draggable> + </transition-group> <AddCard :placeholder="'Ajouter'" class="add-card" @click="emit('addCard')" /> -</template> \ No newline at end of file +</template> + +<style lang="scss"> + +.flip-list-move { + transition: transform 0.5s; +} +.no-move { + transition: transform 0s; +} + +</style> \ No newline at end of file -- GitLab