{"version":3,"file":"useSymbolTexts-Dd1L30Yp.js","sources":["../../src/components/common/Loading.tsx","../../src/utils/symbolTexts.ts","../../src/hooks/useSymbolTexts.ts"],"sourcesContent":["import { ContentContainer } from \"@Components/forecast/ContentContainer\";\nimport { useTranslations } from \"@Context/TranslationContext/TranslationContext\";\nimport classNames from \"classnames\";\n\ntype Props = {\n disableAnimation?: boolean;\n className?: string;\n};\n\nexport const Loading = ({ disableAnimation, className = \"\" }: Props) => {\n const { t } = useTranslations();\n\n return (\n \n \n {disableAnimation ? (\n \n {t(\"forecast.loading\")}\n \n ) : (\n \n \n \n \n \n \n )}\n \n \n );\n};\n","import { LOCALES_TO_LANGUAGE } from \"@Context/TranslationContext/TranslationContext\";\nimport { getTranslations } from \"@Utils/translations\";\n\nexport const getLocalisedAltText = (symbol: string, locale: \"de-CH\" | \"rm\") => {\n const translations = getTranslations(LOCALES_TO_LANGUAGE[locale]);\n\n return (translations.symbol as { [key: string]: string })[symbol] ?? \"\";\n};\n","import { useTranslations } from \"@Context/TranslationContext/TranslationContext\";\nimport { ForecastService } from \"@MeteoApi/services/ForecastService\";\nimport { SymbolTexts } from \"@Models/SymbolTexts\";\nimport { getLocalisedAltText } from \"@Utils/symbolTexts\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport const useSymbolTexts = (): SymbolTexts => {\n const { currentLocale } = useTranslations();\n const [symbolTexts, setSymbolTexts] = useState({});\n\n const fetchSymbolTexts = useCallback(async () => {\n try {\n // Only keep alt texts for Symbol24\n const { symbol24_text = {} } = await ForecastService.getSymbolCodes();\n\n // Map code (key) to number for easier access\n const remappedSymbolTexts = Object.entries(symbol24_text).reduce(\n (acc, [key, value]) => {\n // In case of Romansh language, use the texts from translations as\n // the API does not support multi-language\n const altText =\n currentLocale == \"rm\" ? getLocalisedAltText(key, \"rm\") : value;\n\n return { ...acc, [Number(key)]: altText };\n },\n {} as SymbolTexts,\n );\n\n setSymbolTexts(remappedSymbolTexts);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(err);\n setSymbolTexts({});\n }\n }, [currentLocale]);\n\n useEffect(() => {\n fetchSymbolTexts();\n }, [fetchSymbolTexts]);\n\n return symbolTexts;\n};\n"],"names":["Loading","disableAnimation","className","t","useTranslations","ContentContainer","jsx","classNames","jsxs","getLocalisedAltText","symbol","locale","getTranslations","LOCALES_TO_LANGUAGE","useSymbolTexts","currentLocale","symbolTexts","setSymbolTexts","useState","fetchSymbolTexts","useCallback","symbol24_text","ForecastService","remappedSymbolTexts","acc","key","value","altText","err","useEffect"],"mappings":"sxCASO,MAAMA,EAAU,CAAC,CAAE,iBAAAC,EAAkB,UAAAC,EAAY,MAAgB,CAChE,KAAA,CAAE,EAAAC,CAAE,EAAIC,EAAgB,EAE9B,aACGC,EACC,CAAA,SAAAC,EAAA,IAAC,MAAA,CACC,UAAWC,EACT,yCACAL,CACF,EACC,SACCD,EAAAK,MAAC,MAAI,CAAA,UAAU,4DACZ,SAAAH,EAAE,kBAAkB,CAAA,CACvB,EAEAG,MAAC,MAAI,CAAA,UAAU,iCACb,SAAAE,EAAA,KAAC,MAAA,CACC,UAAU,8CACV,MAAM,KACN,OAAO,KACP,QAAQ,cACR,SAAA,CAAAF,EAAA,IAAC,SAAA,CACC,UAAU,4DACV,GAAG,KACH,GAAG,KACH,EAAE,IAAA,CACJ,EACAA,EAAA,IAAC,SAAA,CACC,UAAU,iIACV,GAAG,KACH,GAAG,KACH,EAAE,IAAA,CAAA,CACJ,CAAA,CAAA,CAEJ,CAAA,CAAA,CAAA,EAGN,CAEJ,EC7CaG,EAAsB,CAACC,EAAgBC,IAC7BC,EAAgBC,EAAoBF,CAAM,CAAC,EAE3C,OAAqCD,CAAM,GAAK,GCA1DI,EAAiB,IAAmB,CACzC,KAAA,CAAE,cAAAC,CAAc,EAAIX,EAAgB,EACpC,CAACY,EAAaC,CAAc,EAAIC,EAAAA,SAAsB,CAAA,CAAE,EAExDC,EAAmBC,EAAAA,YAAY,SAAY,CAC3C,GAAA,CAEF,KAAM,CAAE,cAAAC,EAAgB,CAAA,CAAO,EAAA,MAAMC,EAAgB,eAAe,EAG9DC,EAAsB,OAAO,QAAQF,CAAa,EAAE,OACxD,CAACG,EAAK,CAACC,EAAKC,CAAK,IAAM,CAGrB,MAAMC,EACJZ,GAAiB,KAAON,EAAoBgB,EAAK,IAAI,EAAIC,EAEpD,MAAA,CAAE,GAAGF,EAAK,CAAC,OAAOC,CAAG,CAAC,EAAGE,CAAQ,CAC1C,EACA,CAAA,CACF,EAEAV,EAAeM,CAAmB,QAC3BK,EAAK,CAEZ,QAAQ,MAAMA,CAAG,EACjBX,EAAe,CAAA,CAAE,CAAA,CACnB,EACC,CAACF,CAAa,CAAC,EAElBc,OAAAA,EAAAA,UAAU,IAAM,CACGV,EAAA,CAAA,EAChB,CAACA,CAAgB,CAAC,EAEdH,CACT"}