1
0
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:
Laurent
2020-10-09 18:35:46 +01:00
committed by GitHub
parent 833fb1264f
commit fe41d37f8f
804 changed files with 95622 additions and 5307 deletions

View File

@ -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];
};