diff --git a/resources/js/Components/Common/TimeEntry/TimeEntryAggregateRow.vue b/resources/js/Components/Common/TimeEntry/TimeEntryAggregateRow.vue index 2508c1bf..76e2afc1 100644 --- a/resources/js/Components/Common/TimeEntry/TimeEntryAggregateRow.vue +++ b/resources/js/Components/Common/TimeEntry/TimeEntryAggregateRow.vue @@ -22,40 +22,37 @@ const props = defineProps<{ tasks: Task[]; tags: Tag[]; createTag: (name: string) => Promise; -}>(); - -const emit = defineEmits<{ - onStartStopClick: [timeEntry: TimeEntry]; - updateTimeEntries: [timeEntries: TimeEntry[]]; - deleteTimeEntries: [timeEntries: TimeEntry[]]; + onStartStopClick: (timeEntry: TimeEntry) => void; + updateTimeEntries: (timeEntries: TimeEntry[]) => void; + deleteTimeEntries: (timeEntries: TimeEntry[]) => void; }>(); function updateTimeEntryDescription(description: string) { const updatedTimeEntries = props.timeEntry.timeEntries.map((entry) => { return { ...entry, description }; }); - emit('updateTimeEntries', updatedTimeEntries); + props.updateTimeEntries(updatedTimeEntries); } function updateTimeEntryTags(tags: string[]) { const updatedTimeEntries = props.timeEntry.timeEntries.map((entry) => { return { ...entry, tags }; }); - emit('updateTimeEntries', updatedTimeEntries); + props.updateTimeEntries(updatedTimeEntries); } function updateTimeEntryBillable(billable: boolean) { const updatedTimeEntries = props.timeEntry.timeEntries.map((entry) => { return { ...entry, billable }; }); - emit('updateTimeEntries', updatedTimeEntries); + props.updateTimeEntries(updatedTimeEntries); } function updateProjectAndTask(projectId: string, taskId: string) { const updatedTimeEntries = props.timeEntry.timeEntries.map((entry) => { return { ...entry, project_id: projectId, task_id: taskId }; }); - emit('updateTimeEntries', updatedTimeEntries); + props.updateTimeEntries(updatedTimeEntries); } const expanded = ref(false); @@ -121,12 +118,12 @@ const expanded = ref(false); @@ -139,9 +136,9 @@ const expanded = ref(false); :tasks="tasks" :tags="tags" indent - @updateTimeEntry="(arg) => emit('updateTimeEntries', [arg])" - @onStartStopClick="emit('onStartStopClick', subEntry)" - @deleteTimeEntry="emit('deleteTimeEntries', [subEntry])" + :updateTimeEntry="(arg) => updateTimeEntries([arg])" + :onStartStopClick="() => onStartStopClick(subEntry)" + :deleteTimeEntry="() => deleteTimeEntries([subEntry])" :createTag :key="subEntry.id" v-for="subEntry in timeEntry.timeEntries" diff --git a/resources/js/Components/Common/TimeEntry/TimeEntryGroupedTable.vue b/resources/js/Components/Common/TimeEntry/TimeEntryGroupedTable.vue index a2ce65c7..7ecf8f0e 100644 --- a/resources/js/Components/Common/TimeEntry/TimeEntryGroupedTable.vue +++ b/resources/js/Components/Common/TimeEntry/TimeEntryGroupedTable.vue @@ -20,13 +20,10 @@ const props = defineProps<{ tasks: Task[]; tags: Tag[]; createTag: (name: string) => Promise; -}>(); - -const emit = defineEmits<{ - updateTimeEntry: [entry: TimeEntry]; - updateTimeEntries: [entries: TimeEntry[]]; - deleteTimeEntries: [entries: TimeEntry[]]; - createTimeEntry: [entry: Omit]; + updateTimeEntry: (entry: TimeEntry) => void; + updateTimeEntries: (entries: TimeEntry[]) => void; + deleteTimeEntries: (entries: TimeEntry[]) => void; + createTimeEntry: (entry: Omit) => void; }>(); const groupedTimeEntries = computed(() => { @@ -96,7 +93,7 @@ const groupedTimeEntries = computed(() => { }); function startTimeEntryFromExisting(entry: TimeEntry) { - emit('createTimeEntry', { + props.createTimeEntry({ project_id: entry.project_id, task_id: entry.task_id, start: dayjs().utc().format(), @@ -115,9 +112,9 @@ function startTimeEntryFromExisting(entry: TimeEntry) { :projects="projects" :tasks="tasks" :tags="tags" - @onStartStopClick="startTimeEntryFromExisting(entry)" - @updateTimeEntries="(arg) => emit('updateTimeEntries', arg)" - @deleteTimeEntries="(arg) => emit('deleteTimeEntries', arg)" + :onStartStopClick="startTimeEntryFromExisting" + :updateTimeEntries + :deleteTimeEntries :createTag v-if="'timeEntries' in entry && entry.timeEntries.length > 1" :time-entry="entry"> @@ -126,9 +123,9 @@ function startTimeEntryFromExisting(entry: TimeEntry) { :tasks="tasks" :tags="tags" :createTag - @updateTimeEntry="(arg) => emit('updateTimeEntry', arg)" - @onStartStopClick="startTimeEntryFromExisting(entry)" - @deleteTimeEntry="() => emit('deleteTimeEntries', [entry])" + :updateTimeEntry + :onStartStopClick="() => startTimeEntryFromExisting(entry)" + :deleteTimeEntry="() => deleteTimeEntries([entry])" v-else :time-entry="entry"> diff --git a/resources/js/Components/Common/TimeEntry/TimeEntryRow.vue b/resources/js/Components/Common/TimeEntry/TimeEntryRow.vue index e8d61652..221a60be 100644 --- a/resources/js/Components/Common/TimeEntry/TimeEntryRow.vue +++ b/resources/js/Components/Common/TimeEntry/TimeEntryRow.vue @@ -17,32 +17,29 @@ const props = defineProps<{ tasks: Task[]; tags: Tag[]; createTag: (name: string) => Promise; -}>(); - -const emit = defineEmits<{ - onStartStopClick: []; - deleteTimeEntry: []; - updateTimeEntry: [timeEntry: TimeEntry]; + onStartStopClick: () => void; + deleteTimeEntry: () => void; + updateTimeEntry: (timeEntry: TimeEntry) => void; }>(); function updateTimeEntryDescription(description: string) { - emit('updateTimeEntry', { ...props.timeEntry, description }); + props.updateTimeEntry({ ...props.timeEntry, description }); } function updateTimeEntryTags(tags: string[]) { - emit('updateTimeEntry', { ...props.timeEntry, tags }); + props.updateTimeEntry({ ...props.timeEntry, tags }); } function updateTimeEntryBillable(billable: boolean) { - emit('updateTimeEntry', { ...props.timeEntry, billable }); + props.updateTimeEntry({ ...props.timeEntry, billable }); } function updateStartEndTime(start: string, end: string | null) { - emit('updateTimeEntry', { ...props.timeEntry, start, end }); + props.updateTimeEntry({ ...props.timeEntry, start, end }); } function updateProjectAndTask(projectId: string, taskId: string) { - emit('updateTimeEntry', { + props.updateTimeEntry({ ...props.timeEntry, project_id: projectId, task_id: taskId, @@ -106,12 +103,12 @@ function updateProjectAndTask(projectId: string, taskId: string) { updateStartEndTime "> diff --git a/resources/js/Pages/Time.vue b/resources/js/Pages/Time.vue index f5c70b59..d7a70f8d 100644 --- a/resources/js/Pages/Time.vue +++ b/resources/js/Pages/Time.vue @@ -104,10 +104,10 @@ async function createTag(name: string) {