UNPKG

@ultraviolet/plus

Version:
38 lines (37 loc) 1.08 kB
"use client"; import { jsx } from "@emotion/react/jsx-runtime"; import { useMemo, useCallback, createContext, useContext } from "react"; import EstimateCostLocales from "./locales/en.js"; const EstimateCostContext = createContext({ locales: EstimateCostLocales, formatNumber: () => "" }); const useEstimateCost = () => useContext(EstimateCostContext); const EstimateCostProvider = ({ children, locales, currency, numberLocales }) => { const newLocales = useMemo(() => locales ? { ...EstimateCostLocales, ...locales } : EstimateCostLocales, [locales]); const formatNumber = useCallback((number, options) => { const numberFormat = new Intl.NumberFormat(numberLocales, { style: "currency", currency, ...options }); return numberFormat.format(number); }, [currency, numberLocales]); const value = useMemo(() => ({ locales: newLocales, formatNumber }), [formatNumber, newLocales]); return /* @__PURE__ */ jsx(EstimateCostContext.Provider, { value, children }); }; export { EstimateCostProvider, useEstimateCost };