Server Action invoked by the home's ContinueWatching component with the
location it read from localStorage.
The client holds identity — a course slug, a module slug and a lesson id —
and the domain owns everything else, so a retitled lesson shows its new
title without any stored copy going stale.
A location that no longer resolves returns data: null, not an error.
Lessons get renamed, moved and removed while a device still holds a record
pointing at them; that is an ordinary outcome, and the home's answer to it
is to render nothing. Reserving validationErrors for genuinely malformed
input keeps the two distinguishable.
Returns
{ data: ContinueWatchingPanel | null }; validationErrors when
the stored location does not satisfy the schema
Server Action invoked by the home's
ContinueWatchingcomponent with the location it read fromlocalStorage.The client holds identity — a course slug, a module slug and a lesson id — and the domain owns everything else, so a retitled lesson shows its new title without any stored copy going stale.
A location that no longer resolves returns
data: null, not an error. Lessons get renamed, moved and removed while a device still holds a record pointing at them; that is an ordinary outcome, and the home's answer to it is to render nothing. ReservingvalidationErrorsfor genuinely malformed input keeps the two distinguishable.