ENGLISH·COURSE API
    Preparing search index...
    • Client-side providers that wrap the entire app. Add new global providers here (theme, auth session, query client, etc.).

      Parameters

      • children: { children: ReactNode; levels: readonly AchievementLevel[] }

        The page below the providers

      Returns Element

      This renders inside <ThemeProvider> and on every route, which is why the one-off theme migration runs here rather than in a theme control: a learner carrying a stored system must be migrated whether or not the view they landed on happens to show the toggle. See useLegacyThemeMigration.

      Being on every route is also what lets PendingPrizeAnnouncement do its job: a prize won in the last seconds of a lesson is announced wherever the learner went next, not lost with the page that owed them the news.

      useServiceWorkerRegistration is here for the same reason: the browser decides whether to offer an install once per visit, whichever page the learner happened to land on.