@@ -16,8 +16,9 @@ import TimeEntryDescriptionInput from '@/packages/ui/src/TimeEntry/TimeEntryDesc
1616import TimeEntryRowTagDropdown from ' @/packages/ui/src/TimeEntry/TimeEntryRowTagDropdown.vue' ;
1717import TimeEntryRowDurationInput from ' @/packages/ui/src/TimeEntry/TimeEntryRowDurationInput.vue' ;
1818import TimeEntryMoreOptionsDropdown from ' @/packages/ui/src/TimeEntry/TimeEntryMoreOptionsDropdown.vue' ;
19+ import { TimeEntryEditModal } from ' @/packages/ui/src' ;
1920import BillableToggleButton from ' @/packages/ui/src/Input/BillableToggleButton.vue' ;
20- import { computed } from ' vue' ;
21+ import { computed , ref } from ' vue' ;
2122import TimeTrackerProjectTaskDropdown from ' @/packages/ui/src/TimeTracker/TimeTrackerProjectTaskDropdown.vue' ;
2223import { Checkbox } from ' @/packages/ui/src' ;
2324import { twMerge } from ' tailwind-merge' ;
@@ -46,6 +47,8 @@ const props = defineProps<{
4647
4748const emit = defineEmits <{ selected: []; unselected: [] }>();
4849
50+ const showEditModal = ref (false );
51+
4952function updateTimeEntryDescription(description : string ) {
5053 props .updateTimeEntry ({ ... props .timeEntry , description });
5154}
@@ -87,6 +90,20 @@ function onSelectChange(checked: boolean) {
8790 emit (' unselected' );
8891 }
8992}
93+
94+ function handleEdit() {
95+ showEditModal .value = true ;
96+ }
97+
98+ async function handleUpdateTimeEntry(updatedEntry : TimeEntry ) {
99+ props .updateTimeEntry (updatedEntry );
100+ showEditModal .value = false ;
101+ }
102+
103+ async function handleDeleteTimeEntry() {
104+ props .deleteTimeEntry ();
105+ showEditModal .value = false ;
106+ }
90107 </script >
91108
92109<template >
@@ -148,11 +165,26 @@ function onSelectChange(checked: boolean) {
148165 class =" opacity-20 flex focus-visible:opacity-100 group-hover:opacity-100"
149166 @changed =" onStartStopClick" ></TimeTrackerStartStop >
150167 <TimeEntryMoreOptionsDropdown
168+ @edit =" handleEdit"
151169 @delete =" deleteTimeEntry" ></TimeEntryMoreOptionsDropdown >
152170 </div >
153171 </div >
154172 </MainContainer >
155173 </div >
174+
175+ <TimeEntryEditModal
176+ v-model:show =" showEditModal"
177+ :time-entry =" timeEntry"
178+ :enable-estimated-time =" enableEstimatedTime"
179+ :update-time-entry =" handleUpdateTimeEntry"
180+ :delete-time-entry =" handleDeleteTimeEntry"
181+ :create-client =" createClient"
182+ :create-project =" createProject"
183+ :create-tag =" createTag"
184+ :tags =" tags"
185+ :projects =" projects"
186+ :tasks =" tasks"
187+ :clients =" clients" />
156188</template >
157189
158190<style scoped></style >
0 commit comments