summaryrefslogtreecommitdiff
path: root/extension/react-app/src/components/PillButton.tsx
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-07-02 21:59:11 -0700
committerNate Sesti <sestinj@gmail.com>2023-07-02 21:59:11 -0700
commit527c5c7ce2a1605935814e83e851d7539d12e6d0 (patch)
tree619878c7279c376b4ff9c949c898938c822dce6e /extension/react-app/src/components/PillButton.tsx
parentf9ea4f84da154d0c3391d572ce958bc6bb4a96cd (diff)
parentcf3d08ceaabecd80b20aaac24c5c166cd8e6472f (diff)
downloadsncontinue-527c5c7ce2a1605935814e83e851d7539d12e6d0.tar.gz
sncontinue-527c5c7ce2a1605935814e83e851d7539d12e6d0.tar.bz2
sncontinue-527c5c7ce2a1605935814e83e851d7539d12e6d0.zip
Merge branch 'main' of https://github.com/continuedev/continue
Diffstat (limited to 'extension/react-app/src/components/PillButton.tsx')
-rw-r--r--extension/react-app/src/components/PillButton.tsx66
1 files changed, 66 insertions, 0 deletions
diff --git a/extension/react-app/src/components/PillButton.tsx b/extension/react-app/src/components/PillButton.tsx
new file mode 100644
index 00000000..33451db5
--- /dev/null
+++ b/extension/react-app/src/components/PillButton.tsx
@@ -0,0 +1,66 @@
+import { useState } from "react";
+import styled from "styled-components";
+import { defaultBorderRadius } from ".";
+
+const Button = styled.button`
+ border: none;
+ color: white;
+ background-color: transparent;
+ border: 1px solid white;
+ border-radius: ${defaultBorderRadius};
+ padding: 3px 6px;
+
+ &:hover {
+ background-color: white;
+ color: black;
+ }
+`;
+
+interface PillButtonProps {
+ onHover?: (arg0: boolean) => void;
+ onDelete?: () => void;
+ title: string;
+}
+
+const PillButton = (props: PillButtonProps) => {
+ const [isHovered, setIsHovered] = useState(false);
+ return (
+ <Button
+ onMouseEnter={() => {
+ setIsHovered(true);
+ if (props.onHover) {
+ props.onHover(true);
+ }
+ }}
+ onMouseLeave={() => {
+ setIsHovered(false);
+ if (props.onHover) {
+ props.onHover(false);
+ }
+ }}
+ >
+ <div
+ style={{ display: "grid", gridTemplateColumns: "1fr auto", gap: "4px" }}
+ >
+ <span>{props.title}</span>
+ <span
+ style={{
+ cursor: "pointer",
+ color: "red",
+ borderLeft: "1px solid black",
+ paddingLeft: "4px",
+ }}
+ hidden={!isHovered}
+ onClick={() => {
+ props.onDelete?.();
+ props.onHover?.(false);
+ }}
+ >
+ X
+ </span>
+ </div>
+ </Button>
+ );
+};
+
+export default PillButton;