{"version":3,"sources":["../../../src/client/useLocale.ts"],"sourcesContent":["'use client';\n\nimport type { LocalesValues } from '@intlayer/config/client';\nimport configuration from '@intlayer/config/built';\n\nimport { localeList } from '@intlayer/core';\nimport { useCallback, useContext } from 'react';\nimport { IntlayerClientContext } from './IntlayerProvider';\nimport { useLocaleCookie } from './useLocaleCookie';\n\ntype useLocaleProps = {\n  onLocaleChange?: (locale: LocalesValues) => void;\n};\n\n/**\n * On the client side, hook to get the current locale and all related fields\n */\nexport const useLocale = ({ onLocaleChange }: useLocaleProps = {}) => {\n  const {\n    /**\n     * Prefix default prefix the default locale to the path as other locales.\n     *\n     * Example with prefixDefault = true and defaultLocale = 'en':\n     * path = /en/dashboard or /fr/dashboard\n     *\n     * Example with prefixDefault = false and defaultLocale = 'en':\n     * path = /dashboard or /fr/dashboard\n     *\n     */\n    prefixDefault,\n  } = configuration?.middleware ?? {};\n  const { defaultLocale, locales: availableLocales } =\n    configuration?.internationalization ?? {};\n\n  const { locale, setLocale: setLocaleState } = useContext(\n    IntlayerClientContext\n  );\n  const { setLocaleCookie } = useLocaleCookie();\n\n  const setLocale = (locale: LocalesValues) => {\n    if (!availableLocales?.map(String).includes(locale)) {\n      console.error(`Locale ${locale} is not available`);\n      return;\n    }\n\n    setLocaleState(locale);\n    setLocaleCookie(locale);\n    onLocaleChange?.(locale);\n  };\n\n  return {\n    locale, // Current locale\n    defaultLocale, // Principal locale defined in config\n    availableLocales, // List of the available locales defined in config\n    localeList, // List of all available locales\n    setLocale, // Function to set the locale\n  };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAA0B;AAE1B,kBAA2B;AAC3B,mBAAwC;AACxC,8BAAsC;AACtC,6BAAgC;AASzB,MAAM,YAAY,CAAC,EAAE,eAAe,IAAoB,CAAC,MAAM;AACpE,QAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWJ;AAAA,EACF,IAAI,aAAAA,SAAe,cAAc,CAAC;AAClC,QAAM,EAAE,eAAe,SAAS,iBAAiB,IAC/C,aAAAA,SAAe,wBAAwB,CAAC;AAE1C,QAAM,EAAE,QAAQ,WAAW,eAAe,QAAI;AAAA,IAC5C;AAAA,EACF;AACA,QAAM,EAAE,gBAAgB,QAAI,wCAAgB;AAE5C,QAAM,YAAY,CAACC,YAA0B;AAC3C,QAAI,CAAC,kBAAkB,IAAI,MAAM,EAAE,SAASA,OAAM,GAAG;AACnD,cAAQ,MAAM,UAAUA,OAAM,mBAAmB;AACjD;AAAA,IACF;AAEA,mBAAeA,OAAM;AACrB,oBAAgBA,OAAM;AACtB,qBAAiBA,OAAM;AAAA,EACzB;AAEA,SAAO;AAAA,IACL;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACF;AACF;","names":["configuration","locale"]}