From 0e8f60c6eac1fc390e8bb3ac76c296c818e2d434 Mon Sep 17 00:00:00 2001 From: Jens Christian Aanestad <jenscaa@stud.ntnu.no> Date: Mon, 29 Apr 2024 13:41:23 +0200 Subject: [PATCH] refactor/Changed ExpenseBox component to emit expense id when editing --- src/components/Budget/ExpenseBox.vue | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/components/Budget/ExpenseBox.vue b/src/components/Budget/ExpenseBox.vue index 82967ad..1100cd4 100644 --- a/src/components/Budget/ExpenseBox.vue +++ b/src/components/Budget/ExpenseBox.vue @@ -1,9 +1,12 @@ <script setup lang="ts"> -import Button1 from '@/components/Buttons/Button1.vue' -import { type CreateAppFunction, ref } from 'vue' +import { ref } from 'vue' const emit = defineEmits(['deleteEvent', 'editEvent']); const props = defineProps({ + id: { + type: Number, + required: true + }, index: { type: Number, default: 0 @@ -19,24 +22,24 @@ const props = defineProps({ }) // Reactive variables for expense description and amount -let editDescription = ref('') -let editAmount = ref('') +let editDescription = ref(props.description) +let editAmount = ref(props.amount) /** * Emits an event to parent component with the type 'deleteEvent' to signalize - * that an expense with index 'index' must be removed. + * that an expense with given id must be removed. */ const emitDeleteEvent = () => { - emit('deleteEvent', props.index) + emit('deleteEvent', props.id) } /** * Emits an event to parent component with the type 'editEvent' to signalize - * that an expense with index 'index' is to be edited with the values 'editDescription' + * that an expense with given id is to be edited with the values 'editDescription' * and 'editAmount' */ const emitEditEvent = () => { - emit('editEvent', props.index, editDescription.value, editAmount.value) + emit('editEvent', props.id, editDescription.value, editAmount.value) } </script> @@ -55,11 +58,11 @@ const emitEditEvent = () => { </button> </div> - <div class="collapse" id=index> + <div class="collapse" :id=String(index)> <div class="container collapse-container"> <form @submit.prevent="emitEditEvent"> <div class="input-group"> - <span class="input-group-text">Edit expense #{{ index+1 }}: </span> + <span class="input-group-text">Edit expense {{ index+1 }} </span> <input type="text" class="form-control" placeholder="Expense description" required v-model="editDescription"> <input type="number" min="0" class="form-control" placeholder="Amount (kr)" required v-model="editAmount"> <button type="submit" class="btn btn-primary" data-bs-toggle="collapse" :data-bs-target="'#' + index">Confirm</button> @@ -70,6 +73,10 @@ const emitEditEvent = () => { </template> <style scoped> +div.collapse { + margin-bottom: 10px; +} + .expense-container { padding: 0 10px; display: grid; -- GitLab