Handle environments where sub-module lesson detail is missing by falling back to question-set detail, and keep lesson form/status typing safe.
Made-with: Cursor
For lessons, fetch related questions by lesson question_set_id and render a styled question bank panel (same UX as practice), including add/edit/delete with proper refresh.
Made-with: Cursor
Fetch selected lesson details from the sub-module lesson endpoint so the inline detail panel shows the latest question count and lesson metadata.
Made-with: Cursor
Load human language lesson edit data from the dedicated sub-module lesson detail API so lesson metadata stays aligned with the backend response shape.
Made-with: Cursor
Retry scroll restoration until the page is tall enough so refreshes restore to the saved position smoothly, while keeping reduced-motion fallback.
Made-with: Cursor
Replace ad-hoc Loader2 loading indicators with SpinnerIcon so loading states across content and notifications pages use the same Circular-indeterminate progress indicator.
Made-with: Cursor
Route published lesson success back to the Human Language page so prior scroll position is restored, and explicitly guard practice question rendering by fetch status.
Made-with: Cursor
Filter course options by exact selected category_id in flows to prevent first-load course mismatch that changed module counts after refresh.
Made-with: Cursor
Keep retrying hierarchy fetch for a short period when the tab is active and still empty, so data appears automatically without manual refresh.
Made-with: Cursor
Trigger hierarchy fetch whenever the Human Language route is selected so data appears immediately when switching tabs from Content Management.
Made-with: Cursor
Run multiple delayed hierarchy retries on first tab navigation to prevent empty-state flicker and avoid requiring manual page refresh.
Made-with: Cursor
Persist and restore per-route scroll positions in the main layout container so page position is remembered after refresh and navigation.
Made-with: Cursor
Match lesson review and success screens to the practice-style UI and add a single retry for initial hierarchy fetches so content management data appears immediately after login.
Made-with: Cursor
Auto-process intro video URLs on blur with preview support, improve local upload reliability, and refine Step 1 + Review styling for the lesson creation wizard.
Made-with: Cursor
Restore a stable practice-style step indicator in Add New Lesson so active and completed steps are clearly visible and connectors render correctly.
Made-with: Cursor
Restyle the lesson creation flow to match the polished practice experience with cleaner step visuals and section layouts, and reduce high-contrast accents in the lessons panel for a calmer UI.
Made-with: Cursor
Enable selecting and deleting multiple lessons at once in the human language panel, and persist page scroll so users return to their previous position after reload.
Made-with: Cursor
Introduce lesson edit and delete actions in the human language list using question set updates/deletes, and refine lesson card/status styling for lower visual contrast with richer detail presentation.
Made-with: Cursor
Load sub-module QUIZ question sets into lesson rows so newly created lessons appear immediately, and upgrade lesson cards/detail panel styling to show status, question counts, and intro video previews.
Made-with: Cursor
Replace technical API wording in the lesson intro video action with user-friendly text while keeping the same /files/upload behavior.
Made-with: Cursor
Remove practice-specific fields from the lesson page and keep the flow focused on question_sets + sub_module_lessons while preserving intro video upload/import and preview behavior.
Made-with: Cursor
Update the lesson wizard intro video section to support both file upload and general URL import via /files/upload, with Vimeo-safe normalization and inline video preview.
Made-with: Cursor
Introduce a practice-style Add New Lesson page routed from human language sub-modules, wire it to sub_module_lessons-compatible save logic, and remove the temporary lesson modal path.
Made-with: Cursor
Add a Create Lesson dialog in the human language panel so lesson creation mirrors the practice UX while targeting sub_module_lessons data requirements.
Made-with: Cursor
Create lessons via question-set + sub-module-lesson attachment instead of video-only handling, and update new-level creation to reuse existing CEFR levels when present.
Made-with: Cursor
Improve role card visual hierarchy and add clearer metadata (role type, id, created date, description preview) so the list feels less sparse and more informative.
Made-with: Cursor
Add deletion controls for course categories and avoid full-page loading overlay during module/sub-module creation so button-level spinners remain the only loading indicator.
Made-with: Cursor
Show a New lesson button in the lessons tab alongside the practice action so lesson creation is directly accessible from each sub-module panel.
Made-with: Cursor