Files
dyolink/frontend/src/components/lab/tasksViewDefaults.ts

52 lines
1.4 KiB
TypeScript
Raw Normal View History

import type { LabTaskStatus, TaskSortField } from '@/types/cases';
export type TasksViewState = {
search: string;
clinicId: string;
statusFilter: LabTaskStatus | '';
stepCompleted: string;
sortBy: TaskSortField;
sortDir: 'asc' | 'desc';
importantOnly: boolean;
page: number;
highlightTaskId: string | null;
};
export const DEFAULT_TASKS_VIEW: TasksViewState = {
search: '',
clinicId: '',
statusFilter: 'IN_PROGRESS',
stepCompleted: '',
sortBy: 'date',
sortDir: 'desc',
importantOnly: false,
page: 1,
highlightTaskId: null,
};
export const TASK_COMPLETE_EXIT_MS = 550;
export function isDefaultTasksView(state: TasksViewState): boolean {
return (
state.search === DEFAULT_TASKS_VIEW.search &&
state.clinicId === DEFAULT_TASKS_VIEW.clinicId &&
state.statusFilter === DEFAULT_TASKS_VIEW.statusFilter &&
state.stepCompleted === DEFAULT_TASKS_VIEW.stepCompleted &&
state.sortBy === DEFAULT_TASKS_VIEW.sortBy &&
state.sortDir === DEFAULT_TASKS_VIEW.sortDir &&
state.importantOnly === DEFAULT_TASKS_VIEW.importantOnly &&
state.page === DEFAULT_TASKS_VIEW.page &&
state.highlightTaskId === DEFAULT_TASKS_VIEW.highlightTaskId
);
}
export function buildDefaultLocateParams(taskId: string, limit: number) {
return {
taskId,
limit,
sortBy: 'date' as const,
sortDir: 'desc' as const,
status: 'IN_PROGRESS' as const,
};
}