{"version":3,"file":"WithI18n.mjs","names":["createIntl","createIntlCache","React","createContext","useAsyncI18nMessages","Context","undefined","Provider","I18nProvider","Consumer","I18nConsumer","messagesCache","useI18n","dictionary","locale","fallbackDictionary","lang","useContext","resolvedDictionary","intl","useMemo","messages","useCallback","messageId","variables","formatMessage","id"],"sources":["../../../src/utils/enhances/WithI18n.tsx"],"sourcesContent":["import { createIntl, createIntlCache } from '@formatjs/intl';\nimport React, { createContext } from 'react';\n\nimport { useAsyncI18nMessages } from './i18nEnhance';\n\nexport type LocaleKeys = string;\nexport type DictionaryItem = { [key: string]: string };\nexport type Dictionary = { [locale: string]: DictionaryItem | (() => Promise<DictionaryItem>) };\nexport const Context = createContext<LocaleKeys | undefined>(undefined);\nconst { Provider: I18nProvider, Consumer: I18nConsumer } = Context;\nconst messagesCache = createIntlCache();\n\nconst useI18n = (\n  dictionary: Dictionary,\n  locale: LocaleKeys = 'en',\n  fallbackDictionary?: Dictionary,\n) => {\n  const lang = React.useContext(Context) ?? locale;\n  const resolvedDictionary = useAsyncI18nMessages(dictionary, lang, fallbackDictionary);\n  const intl = React.useMemo(\n    () => createIntl({ locale: lang, messages: resolvedDictionary }, messagesCache),\n    [resolvedDictionary, lang],\n  );\n\n  return React.useCallback(\n    (messageId: string, variables?: { [key: string]: string | number | undefined }) => {\n      return intl.formatMessage({ id: messageId ?? '' }, variables);\n    },\n    [intl],\n  );\n};\n\nexport { useI18n, I18nProvider, I18nConsumer };\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,eAAe,QAAQ,gBAAgB;AAC5D,OAAOC,KAAK,IAAIC,aAAa,QAAQ,OAAO;AAE5C,SAASC,oBAAoB,QAAQ,mBAAe;AAKpD,OAAO,MAAMC,OAAO,gBAAGF,aAAa,CAAyBG,SAAS,CAAC;AACvE,MAAM;EAAEC,QAAQ,EAAEC,YAAY;EAAEC,QAAQ,EAAEC;AAAa,CAAC,GAAGL,OAAO;AAClE,MAAMM,aAAa,GAAGV,eAAe,CAAC,CAAC;AAEvC,MAAMW,OAAO,GAAGA,CACdC,UAAsB,EACtBC,MAAkB,GAAG,IAAI,EACzBC,kBAA+B,KAC5B;EACH,MAAMC,IAAI,GAAGd,KAAK,CAACe,UAAU,CAACZ,OAAO,CAAC,IAAIS,MAAM;EAChD,MAAMI,kBAAkB,GAAGd,oBAAoB,CAACS,UAAU,EAAEG,IAAI,EAAED,kBAAkB,CAAC;EACrF,MAAMI,IAAI,GAAGjB,KAAK,CAACkB,OAAO,CACxB,MAAMpB,UAAU,CAAC;IAAEc,MAAM,EAAEE,IAAI;IAAEK,QAAQ,EAAEH;EAAmB,CAAC,EAAEP,aAAa,CAAC,EAC/E,CAACO,kBAAkB,EAAEF,IAAI,CAC3B,CAAC;EAED,OAAOd,KAAK,CAACoB,WAAW,CACtB,CAACC,SAAiB,EAAEC,SAA0D,KAAK;IACjF,OAAOL,IAAI,CAACM,aAAa,CAAC;MAAEC,EAAE,EAAEH,SAAS,IAAI;IAAG,CAAC,EAAEC,SAAS,CAAC;EAC/D,CAAC,EACD,CAACL,IAAI,CACP,CAAC;AACH,CAAC;AAED,SAASP,OAAO,EAAEJ,YAAY,EAAEE,YAAY","ignoreList":[]}