diff --git a/src/components/EditorControls.js b/src/components/EditorControls.js
index 54c3597..af9db66 100644
--- a/src/components/EditorControls.js
+++ b/src/components/EditorControls.js
@@ -15,6 +15,21 @@ export default function EditorControls({ code, setCode, language, setLanguage, t
setRecentlySaved(false);
}, [code, language])
+ useEffect(() => {
+ const listener = (e) => {
+ if ((e.ctrlKey || e.metaKey)) {
+ if (e.key === 's' || e.key === 'S') {
+ e.preventDefault();
+ save();
+ }
+ }
+ }
+
+ window.addEventListener('keydown', listener);
+ return () => window.removeEventListener('keydown', listener);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
function save() {
if (!code || recentlySaved) {
return;
@@ -53,7 +68,6 @@ export default function EditorControls({ code, setCode, language, setLanguage, t