diff options
Diffstat (limited to 'extension/react-app/src')
| -rw-r--r-- | extension/react-app/src/components/StepContainer.tsx | 2 | ||||
| -rw-r--r-- | extension/react-app/src/components/TextDialog.tsx | 6 | ||||
| -rw-r--r-- | extension/react-app/src/pages/gui.tsx | 6 | ||||
| -rw-r--r-- | extension/react-app/src/util/index.ts | 30 | 
4 files changed, 39 insertions, 5 deletions
| diff --git a/extension/react-app/src/components/StepContainer.tsx b/extension/react-app/src/components/StepContainer.tsx index 14e9b854..7f23e333 100644 --- a/extension/react-app/src/components/StepContainer.tsx +++ b/extension/react-app/src/components/StepContainer.tsx @@ -181,7 +181,7 @@ function StepContainer(props: StepContainerProps) {            }            className="overflow-hidden cursor-pointer"            onClick={(e) => { -            if (e.metaKey) { +            if (isMetaEquivalentKeyPressed(e)) {                props.onToggleAll();              } else {                props.onToggle(); diff --git a/extension/react-app/src/components/TextDialog.tsx b/extension/react-app/src/components/TextDialog.tsx index ea5727f0..c724697d 100644 --- a/extension/react-app/src/components/TextDialog.tsx +++ b/extension/react-app/src/components/TextDialog.tsx @@ -81,7 +81,11 @@ const TextDialog = (props: {              rows={10}              ref={textAreaRef}              onKeyDown={(e) => { -              if (e.key === "Enter" && e.metaKey && textAreaRef.current) { +              if ( +                e.key === "Enter" && +                isMetaEquivalentKeyPressed(e) && +                textAreaRef.current +              ) {                  props.onEnter(textAreaRef.current.value);                  setText("");                } else if (e.key === "Escape") { diff --git a/extension/react-app/src/pages/gui.tsx b/extension/react-app/src/pages/gui.tsx index 57cebac3..cb0404ab 100644 --- a/extension/react-app/src/pages/gui.tsx +++ b/extension/react-app/src/pages/gui.tsx @@ -137,12 +137,12 @@ function GUI(props: GUIProps) {    useEffect(() => {      const listener = (e: any) => {        // Cmd + i to toggle fast model -      if (e.key === "i" && e.metaKey && e.shiftKey) { +      if (e.key === "i" && isMetaEquivalentKeyPressed(e) && e.shiftKey) {          setUsingFastModel((prev) => !prev);          // Cmd + backspace to stop currently running step        } else if (          e.key === "Backspace" && -        e.metaKey && +        isMetaEquivalentKeyPressed(e) &&          typeof history?.current_index !== "undefined" &&          history.timeline[history.current_index]?.active        ) { @@ -220,7 +220,7 @@ function GUI(props: GUIProps) {      if (mainTextInputRef.current) {        let input = (mainTextInputRef.current as any).inputValue;        // cmd+enter to /edit -      if (event?.metaKey) { +      if (isMetaEquivalentKeyPressed(event)) {          input = `/edit ${input}`;        }        (mainTextInputRef.current as any).setInputValue(""); diff --git a/extension/react-app/src/util/index.ts b/extension/react-app/src/util/index.ts new file mode 100644 index 00000000..ad711321 --- /dev/null +++ b/extension/react-app/src/util/index.ts @@ -0,0 +1,30 @@ +type Platform = "mac" | "linux" | "windows" | "unknown"; + +function getPlatform(): Platform { +  const platform = window.navigator.platform.toUpperCase(); +  if (platform.indexOf("MAC") >= 0) { +    return "mac"; +  } else if (platform.indexOf("LINUX") >= 0) { +    return "linux"; +  } else if (platform.indexOf("WIN") >= 0) { +    return "windows"; +  } else { +    return "unknown"; +  } +} + +function isMetaEquivalentKeyPressed(event: { +  metaKey: boolean; +  ctrlKey: boolean; +}): boolean { +  const platform = getPlatform(); +  switch (platform) { +    case "mac": +      return event.metaKey; +    case "linux": +    case "windows": +      return event.ctrlKey; +    default: +      return event.metaKey; +  } +} | 
