next-intl
Version:
Internationalization (i18n) for Next.js
29 lines (24 loc) • 929 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var navigation = require('next/navigation');
var _useLocale = require('use-intl/_useLocale');
var constants = require('../shared/constants.js');
function useLocale() {
// The types aren't entirely correct here. Outside of Next.js
// `useParams` can be called, but the return type is `null`.
const params = navigation.useParams();
let locale;
try {
// eslint-disable-next-line react-compiler/react-compiler
// eslint-disable-next-line react-hooks/rules-of-hooks, react-compiler/react-compiler -- False positive
locale = _useLocale.useLocale();
} catch (error) {
if (typeof (params === null || params === void 0 ? void 0 : params[constants.LOCALE_SEGMENT_NAME]) === 'string') {
locale = params[constants.LOCALE_SEGMENT_NAME];
} else {
throw error;
}
}
return locale;
}
exports.default = useLocale;