Skip to content

Commit 747cb40

Browse files
committed
feat: update to hightide 0.9.0
1 parent 91b10d4 commit 747cb40

File tree

11 files changed

+319
-1430
lines changed

11 files changed

+319
-1430
lines changed

web/components/patients/PatientDataEditor.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,9 +344,7 @@ export const PatientDataEditor = ({
344344
{...interactionStates}
345345
>
346346
{sexOptions.map(option => (
347-
<SelectOption key={option.value} value={option.value}>
348-
{option.label}
349-
</SelectOption>
347+
<SelectOption key={option.value} value={option.value} label={option.label} />
350348
))}
351349
</Select>
352350
)}

web/components/properties/PropertyDetailView.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,7 @@ export const PropertyDetailView = ({
249249
}}
250250
>
251251
{propertySubjectTypeList.map(v => (
252-
<SelectOption key={v} value={v}>
253-
{translation('sPropertySubjectType', { subject: v })}
254-
</SelectOption>
252+
<SelectOption key={v} value={v} label={translation('sPropertySubjectType', { subject: v })} />
255253
))}
256254
</Select>
257255
)}
@@ -276,9 +274,7 @@ export const PropertyDetailView = ({
276274
}}
277275
>
278276
{propertyFieldTypeList.map(v => (
279-
<SelectOption key={v} value={v}>
280-
{translation('sPropertyType', { type: v })}
281-
</SelectOption>
277+
<SelectOption key={v} value={v} label={translation('sPropertyType', { type: v })} />
282278
))}
283279
</Select>
284280
)}

web/components/properties/PropertyEntry.tsx

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,8 @@ export const PropertyEntry = ({
108108
onEditComplete={singleSelectValue => onEditComplete({ ...value, singleSelectValue })}
109109
>
110110
{selectData?.options.map(option => (
111-
<SelectOption key={option.id} value={option.id}>
112-
{option.name}
113-
</SelectOption>
114-
))
115-
}
111+
<SelectOption key={option.id} value={option.id} label={option.name} />
112+
))}
116113
</SingleSelectProperty>
117114
)
118115
case 'multiSelect':
@@ -124,11 +121,8 @@ export const PropertyEntry = ({
124121
onEditComplete={multiSelectValue => onEditComplete({ ...value, multiSelectValue })}
125122
>
126123
{selectData?.options.map(option => (
127-
<SelectOption key={option.id} value={option.id}>
128-
{option.name}
129-
</SelectOption>
130-
))
131-
}
124+
<SelectOption key={option.id} value={option.id} label={option.name} />
125+
))}
132126
</MultiSelectProperty>
133127
)
134128
case 'user':

web/components/tables/TaskList.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -586,9 +586,9 @@ export const TaskList = forwardRef<TaskListRef, TaskListProps>(({ tasks: initial
586586
buttonProps={{ className: 'min-w-32' }}
587587
contentPanelProps={{ className: 'min-w-32' }}
588588
>
589-
<SelectOption value="all">{translation('filterAll') || 'All'}</SelectOption>
590-
<SelectOption value="undone">{translation('filterUndone') || 'Undone'}</SelectOption>
591-
<SelectOption value="done">{translation('done')}</SelectOption>
589+
<SelectOption value="all" label={translation('filterAll') || 'All'} />
590+
<SelectOption value="undone" label={translation('filterUndone') || 'Undone'} />
591+
<SelectOption value="done" label={translation('done')} />
592592
</Select>
593593
{headerActions}
594594
{canHandover && (

web/components/tasks/TaskDataEditor.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -273,9 +273,7 @@ export const TaskDataEditor = ({
273273
>
274274
{patients.map(patient => {
275275
return (
276-
<SelectOption key={patient.id} value={patient.id}>
277-
{patient.name}
278-
</SelectOption>
276+
<SelectOption key={patient.id} value={patient.id} label={patient.name} />
279277
)
280278
})}
281279
</Select>
@@ -362,9 +360,9 @@ export const TaskDataEditor = ({
362360
dataProps.onEditComplete?.(priority)
363361
}}
364362
>
365-
<SelectOption value="none" iconAppearance="right">{translation('priorityNone')}</SelectOption>
363+
<SelectOption value="none" iconAppearance="right" label={translation('priorityNone')} />
366364
{priorities.map(({ value, label }) => (
367-
<SelectOption key={value} value={value} iconAppearance="right">
365+
<SelectOption key={value} value={value} iconAppearance="right" label={label}>
368366
<div className="flex items-center gap-2">
369367
<span className={`w-2 h-2 rounded-full ${PriorityUtils.toBackgroundColor(value as TaskPriority | null | undefined)}`} />
370368
<span>{label}</span>

web/hooks/useTableState.ts

Lines changed: 24 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import type {
2+
ColumnFilter,
23
ColumnFiltersState,
34
PaginationState,
45
SortingState,
56
VisibilityState
67
} from '@tanstack/react-table'
78
import type { Dispatch, SetStateAction } from 'react'
8-
import type { DateFilterParameter, DatetimeFilterParameter, TableFilterValue } from '@helpwave/hightide'
9+
import type { DataType, FilterOperator, FilterParameter, FilterValue } from '@helpwave/hightide'
910
import { useStorage } from '@/hooks/useStorage'
1011

1112
const defaultPagination: PaginationState = {
@@ -59,24 +60,13 @@ export function useStorageSyncedTableState(
5960
defaultValue: initialFilters,
6061
serialize: (value) => {
6162
const mappedColumnFilter = value.map((filter) => {
62-
const tableFilterValue = filter.value as TableFilterValue
63-
let parameter: Record<string, unknown> = tableFilterValue.parameter
64-
if(tableFilterValue.operator.startsWith('dateTime')) {
65-
const dateTimeParameter: DatetimeFilterParameter = parameter as DatetimeFilterParameter
66-
parameter = {
67-
...parameter,
68-
compareDatetime: dateTimeParameter.compareDatetime ? dateTimeParameter.compareDatetime.toISOString() : undefined,
69-
min: dateTimeParameter.min ? dateTimeParameter.min.toISOString() : undefined,
70-
max: dateTimeParameter.max ? dateTimeParameter.max.toISOString() : undefined,
71-
}
72-
} else if(tableFilterValue.operator.startsWith('date')) {
73-
const dateParameter: DateFilterParameter = parameter as DateFilterParameter
74-
parameter = {
75-
...parameter,
76-
compareDate: dateParameter.compareDate ? dateParameter.compareDate.toISOString() : undefined,
77-
min: dateParameter.min ? dateParameter.min.toISOString() : undefined,
78-
max: dateParameter.max ? dateParameter.max.toISOString() : undefined,
79-
}
63+
const tableFilterValue = filter.value as FilterValue
64+
const filterParameter = tableFilterValue.parameter
65+
const parameter: Record<string, unknown> = {
66+
...filterParameter,
67+
compareDate: filterParameter.compareDate ? filterParameter.compareDate.toISOString() : undefined,
68+
minDate: filterParameter.minDate ? filterParameter.minDate.toISOString() : undefined,
69+
maxDate: filterParameter.maxDate ? filterParameter.maxDate.toISOString() : undefined,
8070
}
8171
return {
8272
...filter,
@@ -91,34 +81,25 @@ export function useStorageSyncedTableState(
9181
},
9282
deserialize: (value) => {
9383
const mappedColumnFilter = JSON.parse(value) as Record<string, unknown>[]
94-
return mappedColumnFilter.map((filter) => {
95-
const filterValue = filter['value'] as Record<string, unknown>
96-
const operator: string = filterValue['operator'] as string
97-
let parameter: Record<string, unknown> = filterValue['parameter'] as Record<string, unknown>
98-
if(operator.startsWith('dateTime')) {
99-
parameter = {
100-
...parameter,
101-
compareDatetime: parameter['compareDatetime'] ? new Date(parameter['compareDatetime'] as string) : undefined,
102-
min: parameter['min'] ? new Date(parameter['min'] as string) : undefined,
103-
max: parameter['max'] ? new Date(parameter['max'] as string) : undefined,
104-
}
84+
return mappedColumnFilter.map((filter): ColumnFilter => {
85+
const value = filter['value'] as Record<string, unknown>
86+
const parameter: Record<string, unknown> = value['parameter'] as Record<string, unknown>
87+
const filterParameter: FilterParameter = {
88+
...parameter,
89+
compareDate: parameter['compareDate'] ? new Date(parameter['compareDate'] as string) : undefined,
90+
minDate: parameter['minDate'] ? new Date(parameter['minDate'] as string) : undefined,
91+
maxDate: parameter['maxDate'] ? new Date(parameter['maxDate'] as string) : undefined,
10592
}
106-
else if(operator.startsWith('date')) {
107-
parameter = {
108-
...parameter,
109-
compareDate: parameter['compareDate'] ? new Date(parameter['compareDate'] as string) : undefined,
110-
min: parameter['min'] ? new Date(parameter['min'] as string) : undefined,
111-
max: parameter['max'] ? new Date(parameter['max'] as string) : undefined,
112-
}
93+
const mappedValue: FilterValue = {
94+
operator: value['operator'] as FilterOperator,
95+
dataType: value['dataType'] as DataType,
96+
parameter: filterParameter,
11397
}
11498
return {
11599
...filter,
116-
value: {
117-
...filterValue,
118-
parameter,
119-
},
120-
}
121-
}) as unknown as ColumnFiltersState
100+
value: mappedValue,
101+
} as ColumnFilter
102+
})
122103
},
123104
})
124105
const { value: columnVisibility, setValue: setColumnVisibility } = useStorage<VisibilityState>({

0 commit comments

Comments
 (0)