diff --git a/CHANGELOG.md b/CHANGELOG.md index f11d2c0..6deb842 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Das Format folgt [Keep a Changelog](https://keepachangelog.com/de/1.1.0/), die V ## [Unreleased] ### Added +- Fokus-Modus für Notizen: `Strg+Umschalt+F` oder „Fokus-Modus starten“ im Drei-Punkte-Menü. Nur die Notiz in angenehmer Lesebreite über dem ganzen Fenster; die Kopfleiste (Titel, Rückgängig, Teilen, Menü, „Beenden“) gleitet herein, wenn die Maus den oberen Rand berührt. `Esc` beendet ihn; am Handy über einen runden Knopf unten rechts. - **Push-Benachrichtigungen** (Web Push) auf Handy und Desktop, auch wenn MindSift geschlossen ist: unter Kontoeinstellungen → Alarme pro Gerät einschalten und testen; „Push“ ist eine eigene Spalte für jedes Ereignis (auch fällige Aufgaben) und die Tageszusammenfassung. iPhone und iPad ab iOS 16.4, wenn MindSift zum Home-Bildschirm hinzugefügt wurde. Schlüssel per `VAPID_*` oder automatisch erzeugt. API: `/push/key`, `/push/devices`, `/push/subscribe`, `/push/unsubscribe`, `/push/test`. - Links auf einzelne Punkte: „Link zu diesem Punkt kopieren“ in der Aktionsblase eines Punkts oder im Link-Dialog (`/link`) über „Punkt dieser Notiz wählen“. Format `[[Notiz#^id|Notiz › Auszug]]`; ein Klick öffnet die Notiz, springt zum Punkt und hebt ihn hervor. Gibt es den Punkt nicht mehr (verschoben, ausgelagert, gelöscht), öffnet sich die Notiz mit einem Hinweis. Wiki-Links stehen im Text jetzt mit ihrem Anzeigetext und sind direkt anklickbar. - Globaler Desktop-App-Footer mit Versionsnummer, „Über MindSift“, dynamischen Rechtstexten (Impressum, Datenschutz) sowie optional konfigurierbarem Custom-Link (`LEGAL_CUSTOM_LINK_LABEL`, `LEGAL_CUSTOM_LINK_URL`). diff --git a/frontend/src/features/workspace/DocumentEditor.tsx b/frontend/src/features/workspace/DocumentEditor.tsx index d416af6..7500065 100644 --- a/frontend/src/features/workspace/DocumentEditor.tsx +++ b/frontend/src/features/workspace/DocumentEditor.tsx @@ -7,6 +7,7 @@ import { Trash2, RotateCcw, Download, + Maximize2, FileText, Loader2, ArrowLeft, @@ -67,6 +68,9 @@ export interface DocumentEditorProps { variant?: 'page' | 'journal'; /** Large screens: the action buttons render into this element (the workspace tab bar) */ actionsTarget?: HTMLElement | null; + /** Distraction-free mode: reading width, menu entry to leave it */ + focusMode?: boolean; + onToggleFocusMode?: () => void; } // Large screens (lg) put the note's actions into the workspace tab bar and drop the editor header @@ -231,6 +235,8 @@ export const DocumentEditor: React.FC = ({ onDocRemoved, variant = 'page', actionsTarget, + focusMode = false, + onToggleFocusMode, }) => { const inJournal = variant === 'journal'; const large = useSyncExternalStore(subscribeLarge, isLargeScreen, () => false); @@ -971,6 +977,26 @@ export const DocumentEditor: React.FC = ({ )} + {onToggleFocusMode && ( + + )} + + + + + + )} {/* LEFT MASTER SIDEBAR */}