diff options
| author | sestinj <sestinj@gmail.com> | 2023-07-15 15:10:48 -0700 | 
|---|---|---|
| committer | sestinj <sestinj@gmail.com> | 2023-07-15 15:10:48 -0700 | 
| commit | d498faecb809d3a13a605b7dca99a8049218fcc0 (patch) | |
| tree | 1441ce1dc57e12d9b815452153e466b7a21bed66 /extension/react-app | |
| parent | 4ccbee5275ee314a4cdd5e5fcc1024373fe6f513 (diff) | |
| parent | 925c3e0ef45d9eb01a8f6c1efd239fa011492bd2 (diff) | |
| download | sncontinue-d498faecb809d3a13a605b7dca99a8049218fcc0.tar.gz sncontinue-d498faecb809d3a13a605b7dca99a8049218fcc0.tar.bz2 sncontinue-d498faecb809d3a13a605b7dca99a8049218fcc0.zip | |
Merge remote origin main
Diffstat (limited to 'extension/react-app')
| -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; +  } +} | 
