Skip to main content

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​

  • useLanguageSwitcher
  • LanguageSwitcherContext
  • LanguageSwitcherContextType