feat(dashboard): restyle lesson transcript and summarize actions (#758)
* feat(dashboard): restyle lesson transcript and summarize actions Add separator lines around lesson material actions below the video, switch transcript and summarize controls to plain ghost buttons with hover-animated icons, and separate the two actions with a pipe when both are visible. Display rules are unchanged. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * refactor(dashboard): inline summarize action into material actions Fold lesson-summarize-button into lesson-material-actions and remove the standalone component. Lessons without videos use the same actions bar with separators disabled. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(dashboard): align lesson actions with note width on mobile Constrain material actions to max-w-2xl when there is no video so they match the note column. Improve small-screen layout with tighter padding, flex-wrap, and hide the pipe separator below the sm breakpoint. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * add script update * fix(dashboard): tighten spacing between lesson video and note Remove gap-2 from the lesson content stack and drop bottom margin on the last video wrapper so material actions separators control the gap before the note. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(dashboard): show bottom separator on note-only lesson actions Lessons without video were passing showSeparators=false, hiding both lines. Split into top/bottom controls so summarize still gets a line before the note without one above the action row. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(dashboard): always show top separator on lesson material actions Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(dashboard): reduce lesson material action separator margin to my-2 Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * feat(dashboard): consolidate multi-video transcript actions and navigation Register transcript sources per upload video, show a single material actions row after all videos, and add prev/next video navigation in the transcript side panel when multiple transcripts are available. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(dashboard): address greptile review on lesson material actions Require lessonId on material actions and stop overwriting the transcript seek wrapper with a stale localSeekFn snapshot in the sync effect. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(dashboard): stop transcript registry effect infinite loop Replace the reactive sync effect with explicit registry updates from loadTranscript and skip no-op transcript source writes to avoid reading and writing transcriptSources in the same effect pass. Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> * fix(ui): raise tooltip z-index above app bar side panel Use z-menu-elevated for tooltip content so header icon tooltips are not hidden behind the fixed transcript side panel (z-app-bar). Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com> --------- Co-authored-by: Rotimi Best <rotimi-best@users.noreply.github.com>
This commit is contained in:
co-authored by
Rotimi Best
parent
656fa4fa7e
commit
3980aa0a9b
@@ -2064,7 +2064,10 @@
|
||||
"edit": "Rediger udskrift",
|
||||
"save": "Gem",
|
||||
"cancel": "Annuller",
|
||||
"segment_label": "Segmenter kl. {timestamp}"
|
||||
"segment_label": "Segmenter kl. {timestamp}",
|
||||
"video_nav_label": "Video {number}",
|
||||
"previous_video": "Forrige videotransskript",
|
||||
"next_video": "Næste videotransskript"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "YouTube",
|
||||
|
||||
@@ -2064,7 +2064,10 @@
|
||||
"edit": "Transkript bearbeiten",
|
||||
"save": "Speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"segment_label": "Segmentieren um {timestamp}"
|
||||
"segment_label": "Segmentieren um {timestamp}",
|
||||
"video_nav_label": "Video {number}",
|
||||
"previous_video": "Vorheriges Video-Transkript",
|
||||
"next_video": "Nächstes Video-Transkript"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "YouTube",
|
||||
|
||||
@@ -2384,7 +2384,10 @@
|
||||
"edit": "Edit transcript",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"segment_label": "Segment at {timestamp}"
|
||||
"segment_label": "Segment at {timestamp}",
|
||||
"video_nav_label": "Video {number}",
|
||||
"previous_video": "Previous video transcript",
|
||||
"next_video": "Next video transcript"
|
||||
}
|
||||
},
|
||||
"document": {
|
||||
|
||||
@@ -2064,7 +2064,10 @@
|
||||
"edit": "Editar transcripción",
|
||||
"save": "Guardar",
|
||||
"cancel": "Cancelar",
|
||||
"segment_label": "Segmentar en {timestamp}"
|
||||
"segment_label": "Segmentar en {timestamp}",
|
||||
"video_nav_label": "Video {number}",
|
||||
"previous_video": "Transcripción del video anterior",
|
||||
"next_video": "Transcripción del video siguiente"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "youtube",
|
||||
|
||||
@@ -2064,7 +2064,10 @@
|
||||
"edit": "Modifier la transcription",
|
||||
"save": "Enregistrer",
|
||||
"cancel": "Annuler",
|
||||
"segment_label": "Segment à {timestamp}"
|
||||
"segment_label": "Segment à {timestamp}",
|
||||
"video_nav_label": "Vidéo {number}",
|
||||
"previous_video": "Transcription de la vidéo précédente",
|
||||
"next_video": "Transcription de la vidéo suivante"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "YouTube",
|
||||
|
||||
@@ -2064,7 +2064,10 @@
|
||||
"edit": "प्रतिलेख संपादित करें",
|
||||
"save": "सहेजें",
|
||||
"cancel": "रद्द करें",
|
||||
"segment_label": "{timestamp} पर खंड"
|
||||
"segment_label": "{timestamp} पर खंड",
|
||||
"video_nav_label": "वीडियो {number}",
|
||||
"previous_video": "पिछले वीडियो का प्रतिलेख",
|
||||
"next_video": "अगले वीडियो का प्रतिलेख"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "यूट्यूब",
|
||||
|
||||
@@ -2064,7 +2064,10 @@
|
||||
"edit": "Edytuj transkrypcję",
|
||||
"save": "Zapisz",
|
||||
"cancel": "Anuluj",
|
||||
"segment_label": "Segment o {timestamp}"
|
||||
"segment_label": "Segment o {timestamp}",
|
||||
"video_nav_label": "Wideo {number}",
|
||||
"previous_video": "Transkrypcja poprzedniego wideo",
|
||||
"next_video": "Transkrypcja następnego wideo"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "YouTube",
|
||||
|
||||
@@ -2064,7 +2064,10 @@
|
||||
"edit": "Editar transcrição",
|
||||
"save": "Salvar",
|
||||
"cancel": "Cancelar",
|
||||
"segment_label": "Segmentar em {timestamp}"
|
||||
"segment_label": "Segmentar em {timestamp}",
|
||||
"video_nav_label": "Vídeo {number}",
|
||||
"previous_video": "Transcrição do vídeo anterior",
|
||||
"next_video": "Transcrição do próximo vídeo"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "YouTube",
|
||||
|
||||
@@ -2064,7 +2064,10 @@
|
||||
"edit": "Изменить стенограмму",
|
||||
"save": "Сохранить",
|
||||
"cancel": "Отмена",
|
||||
"segment_label": "Сегмент в {timestamp}"
|
||||
"segment_label": "Сегмент в {timestamp}",
|
||||
"video_nav_label": "Видео {number}",
|
||||
"previous_video": "Транскрипт предыдущего видео",
|
||||
"next_video": "Транскрипт следующего видео"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "Ютуб",
|
||||
|
||||
@@ -2064,7 +2064,10 @@
|
||||
"edit": "Chỉnh sửa bản ghi",
|
||||
"save": "Lưu",
|
||||
"cancel": "Hủy bỏ",
|
||||
"segment_label": "Đoạn tại {timestamp}"
|
||||
"segment_label": "Đoạn tại {timestamp}",
|
||||
"video_nav_label": "Video {number}",
|
||||
"previous_video": "Bản ghi video trước",
|
||||
"next_video": "Bản ghi video tiếp theo"
|
||||
},
|
||||
"simple_card": {
|
||||
"kind_youtube": "YouTube",
|
||||
|
||||
Reference in New Issue
Block a user