- Added `SettingsDropdown` component for selecting settings sections with icons and descriptions. - Created `SettingsPage` component to manage user settings, including account details, notifications, calendar availability, privacy, and appearance. - Introduced `SettingsSwitcher` for selecting options within settings. - Integrated command and dialog components for improved user interaction. - Updated `UserDropdown` to include links for settings and logout. - Refactored button styles and card footer layout for consistency. - Added popover functionality for dropdown menus. - Updated dependencies in `yarn.lock` for new components. feat: tempcommit feat: tempcommit
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import zod from 'zod/v4';
|
|
import {
|
|
emailSchema,
|
|
firstNameSchema,
|
|
lastNameSchema,
|
|
newUserEmailServerSchema,
|
|
newUserNameServerSchema,
|
|
passwordSchema,
|
|
timezoneSchema,
|
|
userNameSchema,
|
|
} from '@/app/api/user/validation';
|
|
|
|
// ----------------------------------------
|
|
//
|
|
// Update User Validation
|
|
//
|
|
// ----------------------------------------
|
|
export const updateUserServerSchema = zod.object({
|
|
name: newUserNameServerSchema.optional(),
|
|
first_name: firstNameSchema.optional(),
|
|
last_name: lastNameSchema.optional(),
|
|
email: newUserEmailServerSchema.optional(),
|
|
image: zod.url().optional(),
|
|
timezone: timezoneSchema.optional(),
|
|
});
|
|
|
|
export const updateUserClientSchema = zod.object({
|
|
name: userNameSchema.optional(),
|
|
first_name: firstNameSchema.optional(),
|
|
last_name: lastNameSchema.optional(),
|
|
email: emailSchema.optional(),
|
|
image: zod.url().optional(),
|
|
timezone: timezoneSchema.optional(),
|
|
});
|
|
|
|
export const updateUserPasswordServerSchema = zod
|
|
.object({
|
|
current_password: zod.string().min(1, 'Current password is required'),
|
|
new_password: passwordSchema,
|
|
confirm_new_password: passwordSchema,
|
|
})
|
|
.refine((data) => data.new_password === data.confirm_new_password, {
|
|
message: 'New password and confirm new password must match',
|
|
});
|