feat: Implement user profile management, add multi-language interactive transcripts, and lay groundwork for SSO.

This commit is contained in:
2026-01-17 00:26:42 -03:00
parent ffbef17396
commit b166387a48
26 changed files with 2646 additions and 469 deletions
@@ -434,7 +434,7 @@ export default function LessonEditor({ params }: { params: { id: string; lessonI
<span className="text-2xl">🪄</span>
<div>
<h3 className="text-xl font-bold italic tracking-tight">AI Content Assistant</h3>
<p className="text-xs text-gray-400 mt-1 uppercase tracking-widest font-bold">Automate your content creation</p>
<p className="text-xs text-gray-400 mt-1 uppercase tracking-widest font-bold">Automate your content creation with Local AI</p>
</div>
</div>
@@ -453,14 +453,17 @@ export default function LessonEditor({ params }: { params: { id: string; lessonI
<span className="text-xl">
{lesson.transcription_status === 'queued' || lesson.transcription_status === 'processing' ? '⏳' : '🎤'}
</span>
<div className="text-[10px] font-black uppercase tracking-widest opacity-80">Video/Audio</div>
<div className="text-[10px] font-black uppercase tracking-widest opacity-80">Transcription & Translation</div>
<div className="font-bold">
{lesson.transcription_status === 'queued'
? `Queued (${formatTime(transcriptionTimer)})`
: lesson.transcription_status === 'processing'
? `Transcribing (${formatTime(transcriptionTimer)})`
: lesson.transcription ? 'Update Transcript' : 'Transcribe Video'}
? `Processing (${formatTime(transcriptionTimer)})`
: lesson.transcription ? 'Regenerate Content' : 'Transcribe & Translate'}
</div>
{lesson.transcription && !lesson.transcription.es && lesson.transcription_status === 'completed' && (
<div className="text-[8px] text-amber-500 font-bold uppercase">Translation missing</div>
)}
{(lesson.transcription_status === 'queued' || lesson.transcription_status === 'processing') && (
<div className="absolute bottom-0 left-0 h-1 bg-blue-500 animate-[progress_2s_ease-in-out_infinite]" style={{ width: '100%' }}></div>
)}
@@ -502,7 +505,7 @@ export default function LessonEditor({ params }: { params: { id: string; lessonI
<span className="text-2xl"></span>
<div>
<h3 className="text-xl font-bold font-black italic tracking-tight">AI Lesson Summary</h3>
<p className="text-xs text-gray-400 mt-1 uppercase tracking-widest font-bold">Key insights generated by intelligence</p>
<p className="text-xs text-gray-400 mt-1 uppercase tracking-widest font-bold">Key insights generated from content</p>
</div>
</div>
</div>