Skip to content

Commit 42cca54

Browse files
committed
fix shortcuts and title label
1 parent 58c1ba0 commit 42cca54

3 files changed

Lines changed: 26 additions & 12 deletions

File tree

packages/learningmap/src/KeyboardShortcuts.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ export const KeyboardShortcuts = ({ jsonStore = "https://json.openpatch.org" }:
3333
const showGrid = useEditorStore(state => state.showGrid);
3434
const setShowGrid = useEditorStore(state => state.setShowGrid);
3535
const deleteNode = useEditorStore(state => state.deleteNode);
36+
const drawerOpen = useEditorStore(state => state.drawerOpen);
37+
const edgeDrawerOpen = useEditorStore(state => state.edgeDrawerOpen);
38+
const settingsDrawerOpen = useEditorStore(state => state.settingsDrawerOpen);
3639

3740
const language = settings?.language || "en";
3841
const t = getTranslations(language);
@@ -148,6 +151,9 @@ export const KeyboardShortcuts = ({ jsonStore = "https://json.openpatch.org" }:
148151

149152
useEffect(() => {
150153
const handleKeyDown = (e: KeyboardEvent) => {
154+
if (drawerOpen || edgeDrawerOpen || settingsDrawerOpen) {
155+
return; // Ignore shortcuts when any drawer is open
156+
}
151157
if (e.ctrlKey || e.metaKey) {
152158
if (e.key === '1') {
153159
e.preventDefault();
@@ -227,7 +233,7 @@ export const KeyboardShortcuts = ({ jsonStore = "https://json.openpatch.org" }:
227233
};
228234
}, [onAddNode, onDeleteSelected, onSave, undo, redo, helpOpen, setHelpOpen, onTogglePreview, onToggleDebug,
229235
onZoomIn, onZoomOut, onResetZoom, onFitView, onZoomToSelection, onToggleGrid,
230-
onResetMap, onCut, onCopy, onPaste, onSelectAll]);
236+
onResetMap, onCut, onCopy, onPaste, onSelectAll, drawerOpen, edgeDrawerOpen, settingsDrawerOpen]);
231237

232238
return null;
233239
};

packages/learningmap/src/SettingsDrawer.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ export const SettingsDrawer: React.FC<SettingsDrawerProps> = ({
1616
// Get state from store
1717
const isOpen = useEditorStore(state => state.settingsDrawerOpen);
1818
const settings = useEditorStore(state => state.settings);
19-
19+
2020
// Get actions from store
2121
const setSettingsDrawerOpen = useEditorStore(state => state.setSettingsDrawerOpen);
2222
const setSettings = useEditorStore(state => state.setSettings);
23-
23+
2424
const language = settings?.language || defaultLanguage;
2525
const t = getTranslations(language);
26-
26+
2727
const [localSettings, setLocalSettings] = useState<Settings>(settings);
2828
const { getViewport } = useReactFlow();
2929

@@ -32,7 +32,7 @@ export const SettingsDrawer: React.FC<SettingsDrawerProps> = ({
3232
}, [settings]);
3333

3434
const onClose = () => setSettingsDrawerOpen(false);
35-
35+
3636
const onUpdate = (s: Settings) => {
3737
setSettings(s);
3838
};
@@ -74,7 +74,7 @@ export const SettingsDrawer: React.FC<SettingsDrawerProps> = ({
7474
type="text"
7575
value={localSettings?.title || ""}
7676
onChange={(e) => setLocalSettings(settings => ({ ...settings, title: e.target.value }))}
77-
placeholder={t.placeholderNodeLabel}
77+
placeholder={t.placeholderTitleLabel}
7878
/>
7979
</div>
8080
<div className="form-group">
@@ -94,7 +94,7 @@ export const SettingsDrawer: React.FC<SettingsDrawerProps> = ({
9494
onChange={color => setLocalSettings(settings => ({ ...settings, background: { ...settings.background, color } }))}
9595
/>
9696
</div>
97-
97+
9898
<div className="form-group">
9999
<label>{t.initialViewport}</label>
100100
<div style={{ display: 'flex', gap: '8px', alignItems: 'center', marginTop: '8px' }}>

packages/learningmap/src/translations.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ export interface Translations {
9696

9797
// Placeholders
9898
placeholderNodeLabel: string;
99+
placerholderTitleLabel: string; // only used in SettingsDrawer
99100
placeholderShortSummary: string;
100101
placeholderDetailedDescription: string;
101102
placeholderVideoURL: string;
@@ -295,6 +296,7 @@ const en: Translations = {
295296

296297
// Placeholders
297298
placeholderNodeLabel: "Node label",
299+
placerholderTitleLabel: "Lerningmap label", // only used in SettingsDrawer
298300
placeholderShortSummary: "Short summary",
299301
placeholderDetailedDescription: "Detailed description",
300302
placeholderVideoURL: "YouTube or video URL",
@@ -316,8 +318,10 @@ const en: Translations = {
316318
failedToLoadFile:
317319
"Failed to load the file. Please make sure it is a valid roadmap JSON file.",
318320
failedToExportSVG: "Failed to export SVG: ",
319-
loadExternalWarning: "Loading an external learningmap will replace your existing content. You can back up your current learningmap first by using one of the options below.",
320-
loadExternalBackupPrompt: "Would you like to back up your current learningmap before loading the external one?",
321+
loadExternalWarning:
322+
"Loading an external learningmap will replace your existing content. You can back up your current learningmap first by using one of the options below.",
323+
loadExternalBackupPrompt:
324+
"Would you like to back up your current learningmap before loading the external one?",
321325
emptyMapCannotBeShared: "An empty learningmap cannot be shared.",
322326
uploadFailed: "Upload failed. Please try again!",
323327
loadFailed: "Failed to load. Please check the URL.",
@@ -499,6 +503,7 @@ const de: Translations = {
499503

500504
// Placeholders
501505
placeholderNodeLabel: "Knotenbezeichnung",
506+
placerholderTitleLabel: "Lernkartenbezeichnung", // only used in SettingsDrawer
502507
placeholderShortSummary: "Kurze Zusammenfassung",
503508
placeholderDetailedDescription: "Detaillierte Beschreibung",
504509
placeholderVideoURL: "YouTube oder Video-URL",
@@ -521,10 +526,13 @@ const de: Translations = {
521526
failedToLoadFile:
522527
"Datei konnte nicht geladen werden. Bitte stellen Sie sicher, dass es sich um eine gültige Roadmap-JSON-Datei handelt.",
523528
failedToExportSVG: "SVG-Export fehlgeschlagen: ",
524-
loadExternalWarning: "Das Laden einer externen Learningmap ersetzt Ihren aktuellen Inhalt. Sie können Ihre aktuelle Learningmap zuerst sichern, indem Sie eine der folgenden Optionen verwenden.",
525-
loadExternalBackupPrompt: "Möchten Sie Ihre aktuelle Learningmap sichern, bevor Sie die externe laden?",
529+
loadExternalWarning:
530+
"Das Laden einer externen Learningmap ersetzt Ihren aktuellen Inhalt. Sie können Ihre aktuelle Learningmap zuerst sichern, indem Sie eine der folgenden Optionen verwenden.",
531+
loadExternalBackupPrompt:
532+
"Möchten Sie Ihre aktuelle Learningmap sichern, bevor Sie die externe laden?",
526533
emptyMapCannotBeShared: "Eine leere Learningmap kann nicht geteilt werden.",
527-
uploadFailed: "Beim Upload ist was schief gelaufen. Bitte versuche es erneut!",
534+
uploadFailed:
535+
"Beim Upload ist was schief gelaufen. Bitte versuche es erneut!",
528536
loadFailed: "Beim Laden ist etwas schief gegangen. Bitte überprüfe die URL.",
529537

530538
// Share dialog

0 commit comments

Comments
 (0)