piral-translate
Version:
Plugin for providing translated messages in Piral.
27 lines • 962 B
JavaScript
import { useEffect, useState } from 'react';
import { useActions, useGlobalState } from 'piral-core';
export function useDynamicLanguage(defaultSelected, load) {
const [selected, setSelected] = useState(defaultSelected);
const { selectLanguage, setTranslations, getTranslations } = useActions();
useEffect(() => {
let active = true;
const current = getTranslations(selected);
selectLanguage(undefined);
load(selected, current).then((result) => {
if (active) {
setTranslations(selected, result);
selectLanguage(selected);
}
}, (err) => console.error(err));
return () => {
active = false;
};
}, [selected]);
return [selected, setSelected];
}
export function useTranslate() {
const { translate } = useActions();
useGlobalState((m) => m.language.selected);
return translate;
}
//# sourceMappingURL=hooks.js.map