react-intlayer
Version:
Easily internationalize i18n your React applications with type-safe multilingual content management.
35 lines (32 loc) • 1 kB
JavaScript
'use client';
import { IntlayerClientContext } from "../IntlayerProvider.mjs";
import { useCallback, useContext } from "react";
import { units } from "@intlayer/core";
//#region src/client/format/useUnit.ts
/**
* React hook that provides a unit formatting function
* based on the current locale from {@link useLocaleBase}.
*
* This hook wraps {@link createUnit} to return a formatter
* that can convert values into human-readable localized units
* (e.g., "10 km", "5 lbs").
*
* @example
* ```tsx
* const formatUnit = useUnit();
* const distance = formatUnit(10, { unit: "kilometer" });
* // "10 km" (depending on locale)
* ```
*
* @returns {Function} A unit formatting function that accepts a value and optional formatting options.
*/
const useUnit = () => {
const { locale } = useContext(IntlayerClientContext);
return useCallback((...args) => units(args[0], {
...args[1],
locale: args[1]?.locale ?? locale
}), [locale]);
};
//#endregion
export { useUnit };
//# sourceMappingURL=useUnit.mjs.map