Language switcher hook and context
useLanguageSwitcher reads the current selection and change callback from the
nearest LanguageSwitcher. The built-in option children already use this context;
use the hook when an app-owned child needs to render its own selected state.
import { LanguageSwitcher, useLanguageSwitcher } from "@ovok/native/language-switcher";
function CurrentLanguage() {
const { selectedLanguage } = useLanguageSwitcher();
return <Text>{selectedLanguage}</Text>;
}
<LanguageSwitcher
selectedLanguage={language}
onLanguageChange={setLanguage}
>
<CurrentLanguage />
<LanguageSwitcher.Option value="en_US">
<LanguageSwitcher.Option.Label>English</LanguageSwitcher.Option.Label>
</LanguageSwitcher.Option>
</LanguageSwitcher>
The hook throws outside a LanguageSwitcher. The context contains only the selected
language and setter; it does not load translations or persist the selection.
Public exports
useLanguageSwitcherLanguageSwitcherContextLanguageSwitcherContextType