@react-native-localize-ext/react
Version:
make i18n in react-native much smoother
33 lines (32 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useLocale = exports.useI18n = void 0;
const react_1 = require("react");
const utils_1 = require("./utils");
function useI18n(...i18nList) {
const [, setSign] = react_1.useState(() => utils_1.getSignatures(i18nList));
react_1.useEffect(() => {
const listeners = i18nList.map((item, index) => {
return item._.listen(() => {
setSign((value) => {
const data = value.split(utils_1.SPLIT_STR);
data[index] = utils_1.getSignature(item);
return data.join(utils_1.SPLIT_STR);
});
});
});
return () => {
listeners.forEach((unListen) => unListen());
};
}, []);
return;
}
exports.useI18n = useI18n;
function useLocale(i18n) {
const [locale, setLocale] = react_1.useState(i18n._.getLocaleName());
i18n._.listen((name) => {
setLocale(name);
});
return locale;
}
exports.useLocale = useLocale;