Przejdź do głównej zawartości

Dashboard

Na tej stronie

Dashboard to główny widok po zalogowaniu. Orkiestruje dane z wizyt, zadań, kalendarza i analityki.

Główny kontener - orkiestruje data hooks i DashboardScope:

KomponentRola
StickyActionsBarQuick actions (add visit, search)
MiniToolsPanelTabsTabs dla mini tools
DashboardMainViewGłówny panel z widgetami
MyDayPanel”Today” summary

Stateless panel przyjmujący: visits, insight, loading flags, dateRange.

KomponentRola
VistaInsightCardDaily insight
PinnedNotesBoardPinned notes
TaskDashboardWidgetTask list
CardGeneric containers
KomponentOpisStorybook
MyDayPanel.tsx”Today” summarymissing
MiniToolsDifferentialCard.tsxMini tools cardmissing
StickyActionsBar.tsxQuick actionsmissing
MiniToolsPanelTabs.tsxMini tools tabsmissing
WidgetLokalizacjaStorybook
TaskDashboardWidgetcomponents/tasks/missing
PinnedNotesBoardfeatures/notes/missing
Hook/ServiceSourcePurpose
useAppointmentsListhooks/appointments/Appointments data
useVisitsListhooks/visits/Visits data
useDailyInsighthooks/JSONL asset loader
useTaskshooks/tasks/Tasks data
analyticsServiceservices/Dashboard stats
DashboardScopeContextcontexts/Time range, scope

Nowy provider w src/components/dashboard/state:

  • Dashboard + ToolsTray consume one hydrated state
  • Eliminuje redundantne get_dashboard_state calls
  • Usuwa window-level event wiring
FeatureVia
Pinned itemsuseDashboardState
HistoriesuseDashboardState
Form stateuseDashboardState
Scope changessave helper (optimistic)
NamespaceFile
dashboardsrc/i18n/locales/{pl,en}/dashboard.json
commonsrc/i18n/locales/{pl,en}/common.json
StoryStatus
Main/DashboardPresent (basic state)
Main/Dashboard/MainViewAdded (Default, Loading, Empty, WithDateRange)
StickyActionsBarMissing
MiniToolsPanelTabsMissing
MyDayPanelMissing
TaskDashboardWidgetMissing
PinnedNotesBoardMissing
  • Add stories for StickyActionsBar and MiniToolsPanelTabs
  • Run depcruise for dashboard subtree
  • Use knip to list unused exports

MetricValue
Files~12
LOC~4,500
Key HookuseDashboardState

graph LR
subgraph Dashboard["Dashboard"]
DashView[Dashboard.tsx]
MyDay[MyDayPanel]
TaskWidget[TaskDashboardWidget]
PinnedNotes[PinnedNotesBoard]
end
subgraph Data["Data Sources"]
WorkspaceData[useWorkspaceData<br/>visits, transcripts]
AppointmentsData[useAppointmentsList]
TasksData[useTasks]
NotesData[NotesProvider]
end
subgraph Backend["Backend"]
VisitsAPI[visitApi]
TasksAPI[tasksService]
AnalyticsAPI[analyticsService]
end
DashView --> WorkspaceData
DashView --> AppointmentsData
MyDay --> TasksData
TaskWidget --> TasksData
PinnedNotes --> NotesData
WorkspaceData --> VisitsAPI
TasksData --> TasksAPI
DashView --> AnalyticsAPI

My Day Panel pokazuje “dzisiejsze” podsumowanie:

SekcjaŹródło danych
Appointments todayuseAppointmentsList
Tasks due todayuseTasks (filter: due_at = today)
Pinned notesNotesProvider
Quick statsanalyticsService.getDashboardStats