Files
property-match/src/stores/reminderStore.ts
T
Benjamin Sutter 9f391d17cb feat: Reminder Manager + Schattenmarkt-Freigabe + mock data overhaul
- Add Reminder Manager page (/supply/reminder-manager) with KPI bar,
  filter bar, list/card feed, and detail drawer (7 sections incl.
  activity log, snooze, complete, dismiss actions)
- Add Schattenmarkt-Freigabe toggle on PropertyDetailView: Verwaltung
  can opt-in properties for early market exposure before contract expiry
- Auto-generate FutureSignal cards via useSchattenmarktSignals hook
  when leaseEndDate - leadTimeMonths <= MOCK_TODAY
- Fix useUnifiedResults: use property.resultType as fallback (was
  defaulting everything to VERIFIED_PORTFOLIO)
- Fix demand Results: hide VERIFIED_PORTFOLIO from non-manager users
  even when showOwnProperties toggle was previously enabled
- Fix AppShell: redirect to allowed workspace on user role switch
- Fix 3 wrong match scores (match-002: 93→62, match-009: 86→55,
  match-017: 87→52)
- Add 7 new match records (match-050–056) for need-001, need-002,
  need-011
- Add need-011 (Retail Bern Innenstadt)
- Add prop-031–036 (EXTERNAL_MARKET / MAISON_WORK / FUTURE_AVAILABILITY)
- Fix duplicate image URLs across all properties
- Add signal-011 (Bern Altstadt, Mode Boutique) + propertyId to
  signal-001

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 11:52:24 +02:00

37 lines
1.2 KiB
TypeScript

import { create } from 'zustand'
import type { ReminderType, ReminderStatus, ReminderPriority } from '../domain/reminder'
interface ReminderStore {
selectedId: string | null
setSelectedId: (id: string | null) => void
drawerOpen: boolean
setDrawerOpen: (open: boolean) => void
filterType: ReminderType | 'ALL'
setFilterType: (t: ReminderType | 'ALL') => void
filterStatus: ReminderStatus | 'ALL'
setFilterStatus: (s: ReminderStatus | 'ALL') => void
filterPriority: ReminderPriority | 'ALL'
setFilterPriority: (p: ReminderPriority | 'ALL') => void
searchQuery: string
setSearchQuery: (q: string) => void
viewMode: 'list' | 'card'
setViewMode: (m: 'list' | 'card') => void
}
export const useReminderStore = create<ReminderStore>((set) => ({
selectedId: null,
setSelectedId: (id) => set({ selectedId: id }),
drawerOpen: false,
setDrawerOpen: (open) => set({ drawerOpen: open }),
filterType: 'ALL',
setFilterType: (t) => set({ filterType: t }),
filterStatus: 'ALL',
setFilterStatus: (s) => set({ filterStatus: s }),
filterPriority: 'ALL',
setFilterPriority: (p) => set({ filterPriority: p }),
searchQuery: '',
setSearchQuery: (q) => set({ searchQuery: q }),
viewMode: 'list',
setViewMode: (m) => set({ viewMode: m }),
}))