2024-03-07 19:13:16 +08:00
|
|
|
export const UserSettingBaseKey = 'user-setting';
|
|
|
|
|
|
|
|
|
|
export enum UserSettingRouteKey {
|
|
|
|
|
Profile = 'profile',
|
|
|
|
|
Password = 'password',
|
|
|
|
|
Model = 'model',
|
2024-05-20 18:28:36 +08:00
|
|
|
System = 'system',
|
2024-10-16 15:57:39 +08:00
|
|
|
Api = 'api',
|
2024-03-07 19:13:16 +08:00
|
|
|
Team = 'team',
|
2025-07-23 18:10:18 +08:00
|
|
|
MCP = 'mcp',
|
2024-03-07 19:13:16 +08:00
|
|
|
Logout = 'logout',
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-22 15:11:38 +08:00
|
|
|
export const ProfileSettingBaseKey = 'profile-setting';
|
|
|
|
|
|
|
|
|
|
export enum ProfileSettingRouteKey {
|
|
|
|
|
Profile = 'profile',
|
|
|
|
|
Plan = 'plan',
|
|
|
|
|
Model = 'model',
|
|
|
|
|
System = 'system',
|
|
|
|
|
Api = 'api',
|
|
|
|
|
Team = 'team',
|
|
|
|
|
Prompt = 'prompt',
|
|
|
|
|
Chunk = 'chunk',
|
|
|
|
|
Logout = 'logout',
|
|
|
|
|
}
|
2024-03-08 17:09:07 +08:00
|
|
|
|
2026-03-12 21:01:09 +08:00
|
|
|
export const TimezoneList = Object.freeze(
|
|
|
|
|
Intl.supportedValuesOf('timeZone')
|
|
|
|
|
.map((tz) => {
|
|
|
|
|
const dtf = new Intl.DateTimeFormat('en-US', {
|
|
|
|
|
hourCycle: 'h24',
|
|
|
|
|
timeZone: tz,
|
|
|
|
|
timeZoneName: 'longOffset',
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const offsetString = dtf.formatToParts(new Date()).at(-1)!.value;
|
|
|
|
|
const match = /^GMT(?<sign>\+|-)(?<hours>\d{2}):(?<minutes>\d{2})$/i.exec(
|
|
|
|
|
offsetString,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const hours = match?.groups?.hours ?? '00';
|
|
|
|
|
const minutes = match?.groups?.minutes ?? '00';
|
|
|
|
|
const sign = match?.groups?.sign;
|
|
|
|
|
|
|
|
|
|
return Object.freeze({
|
|
|
|
|
name: `${offsetString} ${tz}`,
|
|
|
|
|
id: tz,
|
|
|
|
|
offset:
|
|
|
|
|
(sign === '-' ? -1 : 1) * (Number(hours) * 60 + Number(minutes)),
|
|
|
|
|
offsetString,
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
.sort((a, b) => a.offset - b.offset),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const navigatorTz = new Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
|
|
|
export const DEFAULT_TIMEZONE = TimezoneList.find(
|
|
|
|
|
(tz) => tz.name === navigatorTz,
|
|
|
|
|
)!;
|