import { useContext, useEffect, useState } from "react";
import styled from "styled-components";
import {
StyledTooltip,
defaultBorderRadius,
secondaryDark,
vscBackground,
vscForeground,
} from ".";
import {
Trash,
PaintBrush,
ExclamationTriangle,
} from "@styled-icons/heroicons-outline";
import { GUIClientContext } from "../App";
import { useDispatch } from "react-redux";
import {
setBottomMessage,
setBottomMessageCloseTimeout,
} from "../redux/slices/uiStateSlice";
import { ContextItem } from "../../../schema/FullState";
import { ReactMarkdown } from "react-markdown/lib/react-markdown";
import StyledMarkdownPreview from "./StyledMarkdownPreview";
const Button = styled.button`
border: none;
color: ${vscForeground};
background-color: ${secondaryDark};
border-radius: ${defaultBorderRadius};
padding: 8px;
overflow: hidden;
cursor: pointer;
`;
const GridDiv = styled.div`
position: absolute;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
display: grid;
grid-gap: 0;
align-items: center;
border-radius: ${defaultBorderRadius};
background-color: ${secondaryDark};
`;
const ButtonDiv = styled.div<{ backgroundColor: string }>`
background-color: ${secondaryDark};
padding: 3px;
height: 100%;
display: flex;
align-items: center;
&:hover {
background-color: ${(props) => props.backgroundColor};
}
`;
const CircleDiv = styled.div`
position: absolute;
top: -10px;
right: -10px;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: red;
color: white;
display: flex;
align-items: center;
justify-content: center;
padding: 2px;
`;
interface PillButtonProps {
onHover?: (arg0: boolean) => void;
item: ContextItem;
warning?: string;
index: number;
addingHighlightedCode?: boolean;
}
const PillButton = (props: PillButtonProps) => {
const [isHovered, setIsHovered] = useState(false);
const client = useContext(GUIClientContext);
const dispatch = useDispatch();
useEffect(() => {
if (isHovered) {
dispatch(setBottomMessageCloseTimeout(undefined));
dispatch(
setBottomMessage(
<>
{props.item.description.name}:{" "}
{props.item.description.description}