feat: navigation and UX improvements complete
This commit is contained in:
@@ -37,6 +37,7 @@ export class UserPreferencesController {
|
||||
unitSystem: preferences.unitSystem,
|
||||
currencyCode: preferences.currencyCode,
|
||||
timeZone: preferences.timeZone,
|
||||
darkMode: preferences.darkMode,
|
||||
createdAt: preferences.createdAt,
|
||||
updatedAt: preferences.updatedAt,
|
||||
});
|
||||
@@ -55,7 +56,7 @@ export class UserPreferencesController {
|
||||
) {
|
||||
try {
|
||||
const userId = (request as any).user.sub;
|
||||
const { unitSystem, currencyCode, timeZone } = request.body;
|
||||
const { unitSystem, currencyCode, timeZone, darkMode } = request.body;
|
||||
|
||||
// Validate unitSystem if provided
|
||||
if (unitSystem && !['imperial', 'metric'].includes(unitSystem)) {
|
||||
@@ -73,6 +74,14 @@ export class UserPreferencesController {
|
||||
});
|
||||
}
|
||||
|
||||
// Validate darkMode if provided (must be boolean or null)
|
||||
if (darkMode !== undefined && darkMode !== null && typeof darkMode !== 'boolean') {
|
||||
return reply.code(400).send({
|
||||
error: 'Bad Request',
|
||||
message: 'darkMode must be a boolean or null',
|
||||
});
|
||||
}
|
||||
|
||||
// Check if preferences exist, create if not
|
||||
let preferences = await this.repository.findByUserId(userId);
|
||||
if (!preferences) {
|
||||
@@ -81,12 +90,14 @@ export class UserPreferencesController {
|
||||
unitSystem: unitSystem || 'imperial',
|
||||
currencyCode: currencyCode || 'USD',
|
||||
timeZone: timeZone || 'UTC',
|
||||
darkMode: darkMode,
|
||||
});
|
||||
} else {
|
||||
const updated = await this.repository.update(userId, {
|
||||
unitSystem,
|
||||
currencyCode,
|
||||
timeZone,
|
||||
darkMode,
|
||||
});
|
||||
if (updated) {
|
||||
preferences = updated;
|
||||
@@ -99,6 +110,7 @@ export class UserPreferencesController {
|
||||
unitSystem: preferences.unitSystem,
|
||||
currencyCode: preferences.currencyCode,
|
||||
timeZone: preferences.timeZone,
|
||||
darkMode: preferences.darkMode,
|
||||
createdAt: preferences.createdAt,
|
||||
updatedAt: preferences.updatedAt,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user