ENGLISH·COURSE API
    Preparing search index...
    • The composition the Lesson Page renders. Receives the resolved View from findLessonForView and the Server Action that completes a lesson. Dispatches on lesson.kind so video and reading lessons render appropriately (video → PlaybackPositionedVideoPlayer; reading → body).

      The gold title block over the player is cover art, not a watermark: it renders only while the player has no thumbnail of its own to show and playback has not started. The first play retires it for the session, so the speaker's mouth — the content of a pronunciation lesson — is never obstructed mid-video.

      "No thumbnail of its own" is deliberately not the same as "no poster". A YouTube lesson usually carries no poster field, yet its provider paints a thumbnail anyway, and covering that with a gold headline is the very watermark this cover exists to avoid.

      The right rail is the lesson's materials followed by LessonCloseCard, which wraps the "Mark as complete" action and the next lesson. Both render once and at every width: below lg the columns stack and the rail follows the center column, so the learner still meets the materials right after the lesson's own content and the closing card last. Nothing else on the page offers the next lesson.

      Completing the lesson while the page is open earns its ticket, shown as a TicketToast, or redeems the module's prize in a dialog when it was the module's last ticket — see useLessonRewardMoment.

      notesResource is not rendered. It is the identity the Resources card filters by, so the readme.md the Notes tab already renders inline is not also listed in the rail as a file to download — a link to unstyled source of content the learner is looking at.

      Parameters

      • __namedParameters: {
            view: LessonView;
            notes: string | null;
            notesResource:
                | {
                    id: string & $brand<"ResourceId">;
                    lessonId: string & $brand<"LessonId">;
                    title: string;
                    url: string;
                    kind: "pdf" | "slides" | "code" | "other";
                }
                | null;
        }

      Returns Element