feat: mobile app complet + flashcards fixes + drag handle améliorations
Mobile app: - Révision flashcards : liste decks, session flip-card SM-2, couleurs harmonisées web - Génération flashcards depuis note (FlashcardSheet + route /api/mobile/flashcards/generate) - Audio Whisper : hook useAudioRecorder reécrit, MicButton avec erreurs - IA : AISheet (améliorer/clarifier/résumer), TitleSheet (titre automatique) - Suppression note (soft delete + confirmation Alert) - Note du jour : titre lisible + HTML (plus JSON TipTap brut) - Parser TipTap→HTML côté mobile (tipTapToHtml) - Icône 🎓 dans header note → génération flashcards - Endpoint flashcardGenerate dans config.ts Web fixes: - Bug flashcards groupées par carnet → deck par note (migration + schema) - Bug filtre 'cartes dues' ignoré (suppression fallback buildSessionQueue) - Suppression UI création deck manuelle (inutile) - Fix setViewType is not defined dans home-client.tsx Drag handle menu: - Fix : clearNodes() avant transformation (heading→liste/code/citation) - Ajout : option 'Texte' (paragraphe) dans Transformer en - Ajout : Monter / Descendre le bloc - Ajout : Copier le contenu du bloc - Fix : sous-menu hover stable (délai 200ms) - Fix : Supprimer en rouge via classe --danger (plus :first-child) - i18n : nouvelles clés dans 15 locales Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -2867,5 +2867,32 @@
|
||||
"hint_insights_bridge_desc": "Bridge notes connect multiple clusters. They are highlighted because they hold your knowledge graph together.",
|
||||
"hint_insights_refresh_title": "Refresh clusters",
|
||||
"hint_insights_refresh_desc": "If you've added new notes, click the refresh button to recalculate the clusters with the latest content."
|
||||
},
|
||||
"blockAction": {
|
||||
"moveUp": "Move block up",
|
||||
"moveDown": "Move block down",
|
||||
"moveUpFirst": "This is already the first block",
|
||||
"moveDownLast": "This is already the last block",
|
||||
"copyContent": "Copy content",
|
||||
"contentCopied": "Content copied!",
|
||||
"emptyBlock": "This block is empty",
|
||||
"turnInto_paragraph": "Text",
|
||||
"delete": "Delete",
|
||||
"duplicate": "Duplicate",
|
||||
"turnInto": "Turn into",
|
||||
"turnInto_heading1": "Heading 1",
|
||||
"turnInto_heading2": "Heading 2",
|
||||
"turnInto_heading3": "Heading 3",
|
||||
"turnInto_bulletList": "Bullet List",
|
||||
"turnInto_orderedList": "Numbered List",
|
||||
"turnInto_taskList": "Task List",
|
||||
"turnInto_blockquote": "Quote",
|
||||
"turnInto_codeBlock": "Code Block",
|
||||
"turnInto_database": "Inline database",
|
||||
"copyRef": "Copy block reference",
|
||||
"copied": "Reference copied!",
|
||||
"copyRefFailed": "Could not copy block reference",
|
||||
"copyRefNoNote": "Save the note before copying a block reference",
|
||||
"copyRefUnsupported": "This block type cannot be referenced yet"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user