You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-07-13 00:10:37 +02:00
All: Add support for application plugins (#3257)
This commit is contained in:
@ -15,6 +15,7 @@ const useKeymap = (): [
|
||||
] => {
|
||||
const [keymapItems, setKeymapItems] = useState<KeymapItem[]>(() => keymapService.getKeymapItems());
|
||||
const [keymapError, setKeymapError] = useState<Error>(null);
|
||||
const [mustSave, setMustSave] = useState(false);
|
||||
|
||||
const setAccelerator = (commandName: string, accelerator: string) => {
|
||||
setKeymapItems(prevKeymap => {
|
||||
@ -23,6 +24,8 @@ const useKeymap = (): [
|
||||
newKeymap.find(item => item.command === commandName).accelerator = accelerator || null /* Disabled */;
|
||||
return newKeymap;
|
||||
});
|
||||
|
||||
setMustSave(true);
|
||||
};
|
||||
|
||||
const resetAccelerator = (commandName: string) => {
|
||||
@ -33,6 +36,8 @@ const useKeymap = (): [
|
||||
newKeymap.find(item => item.command === commandName).accelerator = defaultAccelerator;
|
||||
return newKeymap;
|
||||
});
|
||||
|
||||
setMustSave(true);
|
||||
};
|
||||
|
||||
const overrideKeymapItems = (customKeymapItems: KeymapItem[]) => {
|
||||
@ -55,14 +60,22 @@ const useKeymap = (): [
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
try {
|
||||
keymapService.overrideKeymap(keymapItems);
|
||||
keymapService.saveCustomKeymap();
|
||||
setKeymapError(null);
|
||||
} catch (err) {
|
||||
setKeymapError(err);
|
||||
if (!mustSave) return;
|
||||
|
||||
setMustSave(false);
|
||||
|
||||
async function saveKeymap() {
|
||||
try {
|
||||
keymapService.overrideKeymap(keymapItems);
|
||||
await keymapService.saveCustomKeymap();
|
||||
setKeymapError(null);
|
||||
} catch (err) {
|
||||
setKeymapError(err);
|
||||
}
|
||||
}
|
||||
}, [keymapItems]);
|
||||
|
||||
saveKeymap();
|
||||
}, [keymapItems, mustSave]);
|
||||
|
||||
return [keymapItems, keymapError, overrideKeymapItems, setAccelerator, resetAccelerator];
|
||||
};
|
||||
|
Reference in New Issue
Block a user