ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
34 lines • 1.37 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.useLocales = void 0;
var react_1 = require("react");
var useI18nProvider_1 = require("./useI18nProvider");
/**
* A hook that gets the available locales from the i18nProvider.
* @example
*
* import { useLocales } from 'react-admin';
*
* const LocaleSelector = () => {
* const locales = useLocales();
* const [currentLocale, setCurrentLocale] = useLocaleState();
*
* return (
* <select onChange={event => setCurrentLocale(event.target.value)}>
* {locales.map(locale => (
* <option key={locale.locale} value={locale.locale}>
* {locale.name}
* </option>
* )}
* </select>
* );
* }
*/
var useLocales = function (options) {
var _a;
var i18nProvider = (0, useI18nProvider_1.useI18nProvider)();
var locales = (0, react_1.useMemo)(function () { return ((i18nProvider === null || i18nProvider === void 0 ? void 0 : i18nProvider.getLocales) ? i18nProvider === null || i18nProvider === void 0 ? void 0 : i18nProvider.getLocales() : []); }, [i18nProvider]);
return (_a = options === null || options === void 0 ? void 0 : options.locales) !== null && _a !== void 0 ? _a : locales;
};
exports.useLocales = useLocales;
//# sourceMappingURL=useLocales.js.map
;