feat: frontend improvements - shared schedule, bottle type, settings UI, planner notifications (#146)

- Rewrite SharedSchedule to match DashboardPage rendering with time-based consumption
- Add bottle package type support across all views (MedDetail, Refill, Planner, Dashboard)
- Redesign settings page with colored threshold chips, validation, and stock reminder display
- Add shareStockStatus toggle and send manual reminder button
- Pill/pills singular/plural consistency across all views
- Planner send notification via push (Shoutrrr) in addition to email
- Stock overflow warning and past-missed day styling
- Update README: bottles in Smart Inventory, push in Trip Planner, new ENV section
- 708 passing frontend tests including new coverage for all changes
This commit is contained in:
Daniel Volz
2026-02-09 19:33:54 +01:00
committed by GitHub
parent f56f2b7c88
commit 3ec1460c4e
24 changed files with 2115 additions and 572 deletions
+8
View File
@@ -181,6 +181,8 @@ export type SharedMedication = {
intakes?: Intake[]; // New intake format with per-intake takenBy
dismissedUntil?: string | null;
updatedAt?: string | number | null; // For filtering out doses from previous schedule configurations
lastStockCorrectionAt?: number | null; // Timestamp in ms for stock correction cutoff
stockAdjustment?: number; // Manual stock adjustment
};
export type SharedScheduleData = {
@@ -190,7 +192,13 @@ export type SharedScheduleData = {
medications: SharedMedication[];
stockThresholds?: {
lowStockDays: number;
normalStockDays?: number;
highStockDays?: number;
reminderDaysBefore?: number;
expiryWarningDays?: number;
};
stockCalculationMode?: "automatic" | "manual";
shareStockStatus?: boolean;
};
export type ExpiredLinkData = {