From 3d806a58f1d28fada335c05cb975bf214f320f59 Mon Sep 17 00:00:00 2001 From: Ianuuang <130673096+Ianuuang@users.noreply.github.com> Date: Thu, 20 Aug 2026 10:10:29 +0800 Subject: [PATCH 1/2] Refactor project retrieval using projectsFromTasks --- frontend/store/index.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/store/index.ts b/frontend/store/index.ts index 710d4fd..9c5377e 100644 --- a/frontend/store/index.ts +++ b/frontend/store/index.ts @@ -19,8 +19,17 @@ export const state = () => ({ export type RootState = ReturnType; +const projectsFromTasks = (tasks: Task[]) => Array.from(new Set( + tasks + .map(task => task.project) + .filter((project): project is string => project !== undefined) +)); + export const getters: GetterTree = { - projects: state => state.tasks.map(task => task.project).filter(p => p !== undefined), + projects: state => projectsFromTasks(state.tasks), + activeProjects: state => projectsFromTasks( + state.tasks.filter(task => task.status !== 'completed' && task.status !== 'deleted') + ), tags: state => state.tasks.reduce((tags: string[], task) => { return task.tags ? tags.concat(task.tags) : tags; }, []) From ebc6d38ee93927b961502759f3956b890ff07db3 Mon Sep 17 00:00:00 2001 From: Ianuuang <130673096+Ianuuang@users.noreply.github.com> Date: Thu, 20 Aug 2026 10:11:24 +0800 Subject: [PATCH 2/2] fix: hide completed projects from selector --- frontend/pages/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/pages/index.vue b/frontend/pages/index.vue index 614e2b5..0b84c6a 100644 --- a/frontend/pages/index.vue +++ b/frontend/pages/index.vue @@ -93,7 +93,7 @@ export default defineComponent({ const allModes = ['Tasks', 'Projects']; const project = ref(''); - const projects: ComputedRef = computed(() => store.getters.projects); + const projects: ComputedRef = computed(() => store.getters.activeProjects); watch(projects, () => { if (projects.value.includes(project.value)) return;