summaryrefslogtreecommitdiff
path: root/extension/react-app
diff options
context:
space:
mode:
Diffstat (limited to 'extension/react-app')
-rw-r--r--extension/react-app/src/components/ComboBox.tsx53
-rw-r--r--extension/react-app/src/components/StepContainer.tsx2
-rw-r--r--extension/react-app/src/tabs/gui.tsx11
3 files changed, 41 insertions, 25 deletions
diff --git a/extension/react-app/src/components/ComboBox.tsx b/extension/react-app/src/components/ComboBox.tsx
index 7ee5dc24..af673b42 100644
--- a/extension/react-app/src/components/ComboBox.tsx
+++ b/extension/react-app/src/components/ComboBox.tsx
@@ -79,7 +79,7 @@ const MainTextInput = styled.textarea`
}
`;
-const UlMaxHeight = 400;
+const UlMaxHeight = 300;
const Ul = styled.ul<{
hidden: boolean;
showAbove: boolean;
@@ -94,13 +94,20 @@ const Ul = styled.ul<{
background-color: ${secondaryDark};
color: white;
max-height: ${UlMaxHeight}px;
- overflow: scroll;
+ overflow-y: scroll;
+ overflow-x: hidden;
padding: 0;
${({ hidden }) => hidden && "display: none;"}
border-radius: ${defaultBorderRadius};
- overflow: hidden;
border: 0.5px solid gray;
z-index: 2;
+ // Get rid of scrollbar and its padding
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+ &::-webkit-scrollbar {
+ width: 0px;
+ background: transparent; /* make scrollbar transparent */
+ }
`;
const Li = styled.li<{
@@ -108,7 +115,7 @@ const Li = styled.li<{
selected: boolean;
isLastItem: boolean;
}>`
- ${({ highlighted }) => highlighted && "background: #aa0000;"}
+ ${({ highlighted }) => highlighted && "background: #ff000066;"}
${({ selected }) => selected && "font-weight: bold;"}
padding: 0.5rem 0.75rem;
display: flex;
@@ -272,6 +279,12 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
event.key === "Enter" &&
(!isOpen || items.length === 0)
) {
+ setInputValue("");
+ const value = event.currentTarget.value;
+ if (value !== "") {
+ setPositionInHistory(history.length + 1);
+ setHistory([...history, value]);
+ }
// Prevent Downshift's default 'Enter' behavior.
(event.nativeEvent as any).preventDownshiftDefault = true;
@@ -280,33 +293,28 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
event.currentTarget.value = `/edit ${event.currentTarget.value}`;
}
if (props.onEnter) props.onEnter(event);
- setInputValue("");
- const value = event.currentTarget.value;
- if (value !== "") {
- setPositionInHistory(history.length + 1);
- setHistory([...history, value]);
- }
} else if (event.key === "Tab" && items.length > 0) {
setInputValue(items[0].name);
event.preventDefault();
} else if (
- event.key === "ArrowUp" ||
- (event.key === "ArrowDown" &&
- event.currentTarget.value.split("\n").length > 1)
- ) {
- (event.nativeEvent as any).preventDownshiftDefault = true;
- } else if (
- event.key === "ArrowUp" &&
+ (event.key === "ArrowUp" || event.key === "ArrowDown") &&
event.currentTarget.value.split("\n").length > 1
) {
+ (event.nativeEvent as any).preventDownshiftDefault = true;
+ } else if (event.key === "ArrowUp") {
+ console.log("OWJFOIJO");
if (positionInHistory == 0) return;
+ else if (
+ positionInHistory == history.length &&
+ (history.length === 0 ||
+ history[history.length - 1] !== event.currentTarget.value)
+ ) {
+ setHistory([...history, event.currentTarget.value]);
+ }
setInputValue(history[positionInHistory - 1]);
setPositionInHistory((prev) => prev - 1);
- } else if (
- event.key === "ArrowDown" &&
- event.currentTarget.value.split("\n").length > 1
- ) {
- if (positionInHistory < history.length - 1) {
+ } else if (event.key === "ArrowDown") {
+ if (positionInHistory < history.length) {
setInputValue(history[positionInHistory + 1]);
}
setPositionInHistory((prev) =>
@@ -327,6 +335,7 @@ const ComboBox = React.forwardRef((props: ComboBoxProps, ref) => {
{isOpen &&
items.map((item, index) => (
<Li
+ style={{ borderTop: index === 0 ? "none" : undefined }}
key={`${item.name}${index}`}
{...getItemProps({ item, index })}
highlighted={highlightedIndex === index}
diff --git a/extension/react-app/src/components/StepContainer.tsx b/extension/react-app/src/components/StepContainer.tsx
index 91d7b8ef..590b1166 100644
--- a/extension/react-app/src/components/StepContainer.tsx
+++ b/extension/react-app/src/components/StepContainer.tsx
@@ -206,7 +206,7 @@ function StepContainer(props: StepContainerProps) {
e.stopPropagation();
props.onDelete();
}}
- text={props.historyNode.active ? "Stop" : "Delete"}
+ text={props.historyNode.active ? "Stop (⌘⌫)" : "Delete"}
>
{props.historyNode.active ? (
<StopCircle size="1.6em" onClick={props.onDelete} />
diff --git a/extension/react-app/src/tabs/gui.tsx b/extension/react-app/src/tabs/gui.tsx
index 3cce30de..ca369547 100644
--- a/extension/react-app/src/tabs/gui.tsx
+++ b/extension/react-app/src/tabs/gui.tsx
@@ -139,9 +139,16 @@ function GUI(props: GUIProps) {
useEffect(() => {
const listener = (e: any) => {
- // Cmd + J to toggle fast model
+ // Cmd + i to toggle fast model
if (e.key === "i" && e.metaKey && e.shiftKey) {
setUsingFastModel((prev) => !prev);
+ // Cmd + backspace to stop currently running step
+ } else if (
+ e.key === "Backspace" &&
+ e.metaKey &&
+ typeof history?.current_index !== "undefined"
+ ) {
+ client?.deleteAtIndex(history.current_index);
}
};
window.addEventListener("keydown", listener);
@@ -149,7 +156,7 @@ function GUI(props: GUIProps) {
return () => {
window.removeEventListener("keydown", listener);
};
- }, []);
+ }, [client, history]);
useEffect(() => {
client?.onStateUpdate((state: FullState) => {