@@ -27,7 +27,7 @@ import { ANONYMOUS_USER_ID } from '@/lib/auth/constants'
2727import { getEnv , isTruthy } from '@/lib/core/config/env'
2828import { isHosted } from '@/lib/core/config/feature-flags'
2929import { handleKeyboardActivation } from '@/lib/core/utils/keyboard'
30- import { getBrowserTimezone , getSupportedTimezones } from '@/lib/core/utils/timezone'
30+ import { getBrowserTimezone , getTimezonesByPopularity } from '@/lib/core/utils/timezone'
3131import { getBaseUrl } from '@/lib/core/utils/urls'
3232import { SettingsSection } from '@/app/workspace/[workspaceId]/settings/components/settings-section/settings-section'
3333import { useProfilePictureUpload } from '@/app/workspace/[workspaceId]/settings/hooks/use-profile-picture-upload'
@@ -42,8 +42,11 @@ import { clearUserData } from '@/stores'
4242
4343const logger = createLogger ( 'General' )
4444
45- /** IANA zones for the timezone picker; labels drop underscores so search reads naturally. */
46- const TIMEZONE_OPTIONS = getSupportedTimezones ( ) . map ( ( tz ) => ( {
45+ /**
46+ * IANA zones for the timezone picker, ordered most-popular first; labels drop
47+ * underscores so search reads naturally.
48+ */
49+ const TIMEZONE_OPTIONS = getTimezonesByPopularity ( ) . map ( ( tz ) => ( {
4750 label : tz . replace ( / _ / g, ' ' ) ,
4851 value : tz ,
4952} ) )
@@ -419,28 +422,19 @@ export function General() {
419422 </ div >
420423
421424 < div className = 'flex items-center justify-between gap-4' >
422- < div className = 'flex items-center gap-1.5' >
423- < Label > Timezone</ Label >
424- < Tooltip . Root >
425- < Tooltip . Trigger asChild >
426- < Info className = 'size-[14px] cursor-default text-[var(--text-muted)]' />
427- </ Tooltip . Trigger >
428- < Tooltip . Content side = 'bottom' align = 'start' >
429- < p > The timezone scheduled tasks run in. Defaults to this device's zone.</ p >
430- </ Tooltip . Content >
431- </ Tooltip . Root >
425+ < Label > Timezone</ Label >
426+ < div className = 'w-[260px] flex-shrink-0' >
427+ < ChipCombobox
428+ align = 'start'
429+ dropdownWidth = { 260 }
430+ searchable
431+ searchPlaceholder = 'Search timezones'
432+ value = { settings ?. timezone ?? getBrowserTimezone ( ) }
433+ onChange = { handleTimezoneChange }
434+ placeholder = 'Select timezone'
435+ options = { TIMEZONE_OPTIONS }
436+ />
432437 </ div >
433- < ChipCombobox
434- className = 'min-w-0 max-w-[260px]'
435- align = 'start'
436- dropdownWidth = { 260 }
437- searchable
438- searchPlaceholder = 'Search timezones'
439- value = { settings ?. timezone ?? getBrowserTimezone ( ) }
440- onChange = { handleTimezoneChange }
441- placeholder = 'Select timezone'
442- options = { TIMEZONE_OPTIONS }
443- />
444438 </ div >
445439
446440 < div className = 'flex items-center justify-between' >
0 commit comments