improve typing in solidtime ui package

This commit is contained in:
Gregor Vostrak
2024-10-28 14:54:48 +01:00
parent 27b40d863e
commit e54df74d5d
4 changed files with 18 additions and 11 deletions

View File

@@ -6,7 +6,7 @@
"packages": {
"": {
"name": "@solidtime/ui",
"version": "0.0.8",
"version": "0.0.9",
"license": "AGPL-3.0",
"devDependencies": {
"@types/node": "^22.4.1",

View File

@@ -183,7 +183,8 @@ function onSelectChange(event: Event) {
:tasks="tasks"
:selected="
!!selectedTimeEntries.find(
(filterEntry) => filterEntry.id === subEntry.id
(filterEntry: TimeEntry) =>
filterEntry.id === subEntry.id
)
"
@selected="emit('selected', [subEntry])"

View File

@@ -155,7 +155,7 @@ function unselectAllTimeEntries(value: TimeEntriesGroupedByType[]) {
@select-all="selectAllTimeEntries(value)"
@unselect-all="unselectAllTimeEntries(value)"
:checked="
value.every((timeEntry) =>
value.every((timeEntry: TimeEntry) =>
selectedTimeEntries.includes(timeEntry)
)
"></TimeEntryRowHeading>
@@ -166,7 +166,7 @@ function unselectAllTimeEntries(value: TimeEntriesGroupedByType[]) {
:enableEstimatedTime
:selected-time-entries="selectedTimeEntries"
@selected="
(timeEntries) => {
(timeEntries: TimeEntry[]) => {
selectedTimeEntries = [
...selectedTimeEntries,
...timeEntries,
@@ -174,11 +174,12 @@ function unselectAllTimeEntries(value: TimeEntriesGroupedByType[]) {
}
"
@unselected="
(timeEntriesToUnselect) => {
(timeEntriesToUnselect: TimeEntry[]) => {
selectedTimeEntries = selectedTimeEntries.filter(
(item) =>
(item: TimeEntry) =>
!timeEntriesToUnselect.find(
(filterEntry) => filterEntry.id === item.id
(filterEntry: TimeEntry) =>
filterEntry.id === item.id
)
);
}
@@ -204,13 +205,13 @@ function unselectAllTimeEntries(value: TimeEntriesGroupedByType[]) {
:projects="projects"
:selected="
!!selectedTimeEntries.find(
(filterEntry) => filterEntry.id === entry.id
(filterEntry: TimeEntry) => filterEntry.id === entry.id
)
"
@selected="selectedTimeEntries.push(entry)"
@unselected="
selectedTimeEntries = selectedTimeEntries.filter(
(item) => item.id !== entry.id
(item: TimeEntry) => item.id !== entry.id
)
"
:tasks="tasks"

View File

@@ -128,6 +128,7 @@ watch(removeAllTags, () => {
selectedTags.value = [];
}
});
type SelectOption = { label: string; value: string };
</script>
<template>
@@ -200,8 +201,12 @@ watch(removeAllTags, () => {
<div class="flex">
<SelectDropdown
v-model="timeEntryBillable"
:get-key-from-item="(item) => item.value"
:get-name-for-item="(item) => item.label"
:get-key-from-item="
(item: SelectOption) => item.value
"
:get-name-for-item="
(item: SelectOption) => item.label
"
:items="[
{
label: 'Keep current billable status',