ENGLISH·COURSE API
    Preparing search index...
    • Client hook: the video the learner continues a course with, decided exactly as the course overview's continue tile decides it (capability continue-target).

      Parameters

      • view: CourseForView

        The course, its lessons and their videos

      Returns
          | {
              kind: "start"
              | "continue"
              | "rewatch";
              module: {
                  id: string & $brand<"ModuleId">;
                  courseId: string & $brand<"CourseId">;
                  slug: string & $brand<"Slug">;
                  title: string;
                  sequence: number;
              };
              lesson: ModuleLesson;
              lessonNumber: number;
          }
          | null

      The video to open and why (start, continue or rewatch), or null for a course with no videos

      Reads this learner's completion marks, playback positions and the course's own continue-watching record from the learner store, and hands them to courseOverviewProgress — the rule the board uses — so any surface built on this hook opens the same video as the board.

      Before the learner store is seeded every slice reads empty, so the target is the course's first video with kind start. Gate on useIsLearnerStoreSeeded where that would mislead.

      const target = useCourseContinueTarget(view);
      if (target?.kind === "continue") return <Link href={lessonPath(course, target.module, target.lesson)} />;