feat: F015 shortlist management

3-panel Shortlists page with left list, center detail, right decision brief panel. AddToShortlistDialog wired into result feed cards and match detail. Full DRAFT→REVIEW_READY→FINALIZED workflow, AI-generated decision brief draft, duplicate prevention, and compare-view integration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Sutter
2026-05-16 21:10:06 +02:00
parent 2753d1717c
commit 65130efca7
22 changed files with 1079 additions and 195 deletions
+20
View File
@@ -0,0 +1,20 @@
import { create } from 'zustand'
import type { ShortlistItemInput } from '../domain/shortlist'
interface ShortlistStore {
selectedShortlistId: string | null
dialogOpen: boolean
pendingItem: ShortlistItemInput | null
setSelectedShortlist: (id: string | null) => void
openAddDialog: (item: ShortlistItemInput) => void
closeAddDialog: () => void
}
export const useShortlistStore = create<ShortlistStore>((set) => ({
selectedShortlistId: null,
dialogOpen: false,
pendingItem: null,
setSelectedShortlist: (id) => set({ selectedShortlistId: id }),
openAddDialog: (item) => set({ dialogOpen: true, pendingItem: item }),
closeAddDialog: () => set({ dialogOpen: false, pendingItem: null }),
}))