diff --git a/src/renderer/components/sidebar/GlobalTaskList.tsx b/src/renderer/components/sidebar/GlobalTaskList.tsx index 46404ca6..b60d800c 100644 --- a/src/renderer/components/sidebar/GlobalTaskList.tsx +++ b/src/renderer/components/sidebar/GlobalTaskList.tsx @@ -163,6 +163,15 @@ const dateCategoryLabels: Record = { }; type ProjectTaskGroupData = ReturnType[number]; +const EMPTY_TASKS: GlobalTask[] = []; +const EMPTY_PROJECT_GROUPS: ProjectTaskGroupData[] = []; +const EMPTY_DATE_GROUPS: ReturnType = { + Today: [], + Yesterday: [], + 'Previous 7 Days': [], + Older: [], +}; +const EMPTY_DATE_CATEGORIES: ReturnType = []; function applySearch(tasks: GlobalTask[], query: string): GlobalTask[] { if (!query.trim()) return tasks; @@ -1316,12 +1325,21 @@ export const GlobalTaskList = memo(function GlobalTaskList({ const sortedPinnedTasks = useMemo(() => sortTasksByFreshness(pinnedTasks), [pinnedTasks]); const sortedFlat = useMemo( - () => applySortMode(normalTasks, sortMode, readState), - [normalTasks, sortMode, readState] + () => (groupingMode === 'none' ? applySortMode(normalTasks, sortMode, readState) : EMPTY_TASKS), + [groupingMode, normalTasks, sortMode, readState] + ); + const grouped = useMemo( + () => (groupingMode === 'time' ? groupTasksByDate(normalTasks) : EMPTY_DATE_GROUPS), + [groupingMode, normalTasks] + ); + const categories = useMemo( + () => (groupingMode === 'time' ? getNonEmptyTaskCategories(grouped) : EMPTY_DATE_CATEGORIES), + [grouped, groupingMode] + ); + const projectGroups = useMemo( + () => (groupingMode === 'project' ? groupTasksByProject(normalTasks) : EMPTY_PROJECT_GROUPS), + [groupingMode, normalTasks] ); - const grouped = useMemo(() => groupTasksByDate(normalTasks), [normalTasks]); - const categories = useMemo(() => getNonEmptyTaskCategories(grouped), [grouped]); - const projectGroups = useMemo(() => groupTasksByProject(normalTasks), [normalTasks]); // Collapsed group keys for each grouping mode const projectGroupKeys = useMemo(