feat: Notifications page, Sidebar layout fixes, and Achievements enhancements
continuous-integration/drone/push Build is failing

- implemented /notifications page with overdue/upcoming alerts
- Fixed sidebar scrolling in collapsed mode
- Moved notification button to sidebar footer
- Enhanced Achievements page with streak stats and tooltips
- Improved XP history to show task titles
- Added missing translations (en/de)
- Removed top bar header
- Fixed Docker environment routing
This commit is contained in:
2025-12-17 10:06:36 +01:00
parent 7b79015ac2
commit 9819d8db0b
47 changed files with 2309 additions and 1241 deletions
+12 -1
View File
@@ -212,6 +212,15 @@ export class MemStorage implements IStorage {
isSearchable: insertUser.isSearchable ?? false,
apiKey: null,
aiEnabled: insertUser.aiEnabled ?? true,
// Missing fields fix:
language: insertUser.language ?? "en",
is2faEnabled: false,
otpCode: null,
otpExpiresAt: null,
lastActive: null,
routineConfig: { morningTime: "09:00", eveningTime: "17:00", enabled: true },
lastMorningRoutine: null,
lastEveningRoutine: null,
};
this.users.set(id, user);
return user;
@@ -1184,6 +1193,8 @@ export class DbStorage implements IStorage {
}
// Export storage based on environment
export const storage = process.env.NODE_ENV === 'production' || process.env.USE_DB === 'true'
// Export storage based on environment
// Default to database storage if DATABASE_URL is present, otherwise fallback to memory
export const storage = process.env.DATABASE_URL
? new DbStorage()
: new MemStorage();