CourseUpdates
Generated from front/ui/catalogue/examples/CourseUpdates.json
learning · static (no JavaScript) · no children. All components: component playground.
Description for the model
Section titled “Description for the model”Summary on the course page of what changed for a returning learner: lessons updated since they completed them, retired lessons, new lessons since they finished, and lessons whose update is under review. Each entry names its status in words. Filled by the app; authors do not place it.
Live example
Section titled “Live example”Rendered from the example props below with the real component. Theme: coffee · oncall · nightsky · gravity · poland · ulam · platform · open on its own
Example
Section titled “Example”{ "component": "CourseUpdates", "props": { "updated": [ { "title": "Brewing ratios", "href": "/learn/1/10", "date": "2026-10-09T10:00:00Z" } ], "retired": [ { "title": "Old grinder guide" } ], "extended": [ { "title": "Cold brew", "href": "/learn/1/12" } ], "pending": [ { "title": "Water quality", "href": "/learn/1/11", "since": "2026-10-09T10:00:00Z" } ] }}| Prop | Type | Required | Notes |
|---|---|---|---|
title |
string | Heading. max length 120, default "What changed in this course" |
|
updated |
array of objects | Lessons updated since the learner completed them. max 60 items | |
updated[].title |
string | yes | Lesson title. max length 200 |
updated[].href |
string (href) | yes | Lesson link. max length 2048 |
updated[].date |
string (date-time) | ISO 8601 date. max length 40 | |
retired |
array of objects | Lessons removed from the course that the learner had completed. max 60 items | |
retired[].title |
string | yes | Lesson title. max length 200 |
retired[].date |
string (date-time) | ISO 8601 date. max length 40 | |
extended |
array of objects | Lessons added after the learner finished the course. max 60 items | |
extended[].title |
string | yes | Lesson title. max length 200 |
extended[].href |
string (href) | yes | Lesson link. max length 2048 |
pending |
array of objects | Lessons whose source changed and whose update is under review. max 60 items | |
pending[].title |
string | yes | Lesson title. max length 200 |
pending[].href |
string (href) | yes | Lesson link. max length 2048 |
pending[].since |
string (date-time) | ISO 8601 date. max length 40 | |
id |
string | Anchor id for in-page links (letters, digits, dashes). max length 40 |
Text fallback
Section titled “Text fallback”What a text-only client, an unknown renderer or a plain-text channel shows for the example above.
Updated since you completed it, 9 October 2026: Brewing ratiosNew since you finished: Cold brewRetired lesson, no longer part of the course: Old grinder guideWater quality: The source of this lesson changed on 9 October 2026; an update is under review.Invalid props
Section titled “Invalid props”A node whose props fail the schema never breaks the page: the renderer shows the plain-text fallback instead (and logs the issues in development).
{ "updated": "none"}Issues:
/updatedexpected array, got string
Rendered as:
Nothing: this component has no text of its own.
Accessibility
Section titled “Accessibility”axe-core: 20 rules passed, 0 violations, 0 need manual review. Run at build time on the server-rendered HTML in jsdom. Colour contrast and layout rules need a browser and are covered by the Playwright axe scans of the reference frontend.