feat(#127): drive video player from real course data - #1
Closed
dair7 wants to merge 20 commits into
Closed
Conversation
Migrate dev to main
- course-create-form.jsx: fixed duplicated htmlFor=title on all four labels (description/category/price labels pointed at the title input instead of their own field); added matching id to Input/Textarea; fixed Label id=thumbail/id=file typos to htmlFor=thumbnail/file so the upload section labels actually associate. - ComboBox.jsx (CategoryCombobox): added an id prop forwarded to the trigger button so the course-category label can associate with it. - Searchbox.jsx: added a visually-hidden (sr-only) label wired via useId, giving the search input an accessible name beyond just a placeholder. - TransactionHistory.jsx: added an aria-label to the icon-only explorer link and aria-hidden to its icon. - ReelActionButton.jsx: added aria-label to the button and aria-hidden to the icon span, so icon-only reel actions have an accessible name. StarRate.jsx already had a proper aria-label/role=img for read-only ratings, so left untouched. Scope note: this covers the concrete labeling/accessible-name items from Deen-Bridge#134 pointers. Contrast audit, skip-to-content link, shell landmarks, and wiring an automated a11y check are separate, larger pieces of this issue not yet addressed here. npm run lint and npm run build both pass.
…progress bars - Add useCourseProgress hook with localStorage write-behind and throttled API writes - Add useAllCourseProgress for batched progress on course listing pages - Extend VidPlayerBox with startTime, onTimeUpdate, and onEnded props - Add resume/start-over UX on course detail page with progress indicator - Add progress bars and completion badges to CourseCard for owned courses - Graceful degradation: works via localStorage when backend endpoints unavailable - Completion marked at >=90% watched or on player ended event Closes Deen-Bridge#108
…e-progress-tracking feat(course-progress): add resume playback, completion tracking, and progress bars
…rding Feat/wallet onboarding
… (CodeRabbit)
label holds the visible count (e.g. 42), not an action name, so
aria-label={label} announced a bare number with no context for
like/love/comments/share buttons - or nothing at all where label
was numeric 0. Added a separate accessibleLabel prop used for
aria-label, and set it to Like/Love/Comments/Share at all 8
ReelActionButton call sites (desktop + mobile layouts) in
ReelCard.jsx. label remains the visible count only.
…allet-onboarding Revert 137 feat/wallet onboarding
…deRabbit)
- accessibleLabel now folds in the visible count (e.g. "Like, 42")
instead of just the action name, so screen readers announce both.
- Added a pressed prop to ReelActionButton that renders aria-pressed,
wired to pressed={viewerLiked}/{viewerLoved} on the like/love
instances only, so assistive tech can tell whether a reaction is
currently active. Not applied to comments/share since those are not
toggle buttons.
- Add /educators/[profileid] public route accessible without authentication - Add EducatorProfileHeader with avatar, bio, role, stats, follower count - Add PublicCourseCard, PublicBookCard, PublicSpaceCard (no auth dependencies) - Add tabbed navigation for courses, books, and spaces - Add share button with Web Share API and clipboard fallback - Add auth-aware follow: logged-out users redirect to /login?next=... - Add privacy guard: shows not-found for missing/private profiles - Rewire instructor links on courseCard, libraryCard, spaceCard to /educators/[id] - Add 'View public page' link on authenticated profile page - Add generateMetadata for SEO (title, description, OpenGraph) Closes Deen-Bridge#116
…s-media-134 fix: a11y label associations and accessible names (Deen-Bridge#134)
…c-educator-storefront feat(educators): add public educator storefront pages
- Replace hardcoded files.vidstack.io demo subtitles/thumbnails with real course captions, sourced only from data.subtitles/data.chapters - Add chapter markers (VTT or array) with graceful degrade when absent - Persist playback rate/volume/muted to localStorage across courses - Add clear error state for missing/broken video instead of blank player - Add discoverable keyboard-shortcuts help and a focusable, labelled player - Lazy-load the player component to keep Vidstack off the initial bundle Progress/resume tracking intentionally left to Deen-Bridge#108.
dair7
force-pushed
the
feature/127-video-player-upgrade
branch
from
July 26, 2026 03:06
20313eb to
304d8e8
Compare
Owner
Author
|
Superseded by Deen-Bridge#151 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Progress/resume tracking intentionally left to Deen-Bridge#108.
Closes Deen-Bridge#127