/**
 * useLocale — timezone-handling (wave-11 leaf-E) extends hebrew-locale-dates (spec 117).
 *
 * Returns `{ locale, timezone }` for the current user.
 * - `locale`: 'he' | 'en' — active UI language.
 * - `timezone`: IANA timezone string, e.g. 'Asia/Jerusalem'.
 *
 * Reads from LocaleContext (provided by <LocaleProvider>).
 * Falls back to 'en' / 'Asia/Jerusalem' when outside a <LocaleProvider> tree.
 *
 * All date display components MUST read timezone from this hook — never hardcode a zone.
 *
 * @example
 * const { locale, timezone } = useLocale()
 * const tag = toFormattingLocale(locale)    // 'he-IL' | 'en-IL'
 * formatDate(new Date(), tag, 'short', timezone)
 */
import { useContext } from 'react'
import type { StoredLocale } from '../lib/locale'
import { LocaleContext } from '../i18n/LocaleProvider'
import { DEFAULT_TIMEZONE } from '@zync/types'

export function useLocale(): { locale: StoredLocale; timezone: string } {
  const ctx = useContext(LocaleContext)
  return {
    locale: (ctx?.locale ?? 'en') as StoredLocale,
    timezone: ctx?.timezone ?? DEFAULT_TIMEZONE,
  }
}
