ENGLISH·COURSE API
    Preparing search index...
    • Client hook: the signed-in learner's card, and a way to save it.

      Parameters

      Returns LearnerProfileHandle

      The current state and save

      The client's composition root for the profile — the one place that names the concrete adapter and composes the findLearnerProfile and saveLearnerProfile use cases.

      Without an injected repository it reads the learner store, which the server's snapshot seeds after hydration, and saves through the profile Server Action; every reader shares that store, so a save made on the Profile page reaches the header in the same render pass. A save made in another tab or on another device arrives with the next full load.

      Browser-side only — do NOT call from a Server Component.

      const learner = useLearnerProfile();
      if (learner.status === "present") return <LearnerAvatar profile={learner.profile} />;