import type { SoloWorkspaceStore } from './store' import type { SoloColumnStatus, SoloTask, SoloUnassignedStory } from './types' const EMPTY_TASKS: SoloTask[] = [] const EMPTY_STORIES: SoloUnassignedStory[] = [] export function selectSoloTasksForColumn( status: SoloColumnStatus, ): (s: SoloWorkspaceStore) => SoloTask[] { return (s) => { const ids = s.relations.taskIdsByColumn[status] if (!ids || ids.length === 0) return EMPTY_TASKS const out: SoloTask[] = [] for (const id of ids) { const task = s.entities.tasksById[id] if (task) out.push(task) } return out.length === 0 ? EMPTY_TASKS : out } } export function selectSoloUnassignedStories(s: SoloWorkspaceStore): SoloUnassignedStory[] { if (s.relations.unassignedStoryIds.length === 0) return EMPTY_STORIES const out: SoloUnassignedStory[] = [] for (const id of s.relations.unassignedStoryIds) { const story = s.entities.unassignedStoriesById[id] if (story) out.push(story) } return out.length === 0 ? EMPTY_STORIES : out } export function selectSoloTaskById( taskId: string | null, ): (s: SoloWorkspaceStore) => SoloTask | null { return (s) => { if (!taskId) return null return s.entities.tasksById[taskId] ?? null } }