From a289a197a11b8a760ec43da8dd6eb3db70f9fbd6 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 10 Feb 2026 22:24:35 +0000 Subject: [PATCH] starprompt --- .../src/Components/v2/sidebar/StarPrompt.tsx | 115 ++++++++++++++++++ client/src/Components/v2/sidebar/index.tsx | 2 + 2 files changed, 117 insertions(+) create mode 100644 client/src/Components/v2/sidebar/StarPrompt.tsx diff --git a/client/src/Components/v2/sidebar/StarPrompt.tsx b/client/src/Components/v2/sidebar/StarPrompt.tsx new file mode 100644 index 000000000..cacc442cc --- /dev/null +++ b/client/src/Components/v2/sidebar/StarPrompt.tsx @@ -0,0 +1,115 @@ +import { Typography, IconButton, Stack, Box } from "@mui/material"; +import { Icon } from "@/Components/v2/design-elements"; +import { X } from "lucide-react"; + +import { useTheme } from "@mui/material"; +import { useSelector, useDispatch } from "react-redux"; +import { useTranslation } from "react-i18next"; +import { setStarPromptOpen } from "@/Features/UI/uiSlice.js"; +import type { RootState } from "@/Types/state.js"; +import useSidebar from "@/Hooks/useSidebar.js"; + +export const StarPrompt = ({ + repoUrl = "https://github.com/bluewave-labs/checkmate", +}: { + repoUrl?: string; +}) => { + const theme = useTheme(); + const dispatch = useDispatch(); + const { t } = useTranslation(); + const isOpen = useSelector((state: RootState) => state.ui?.starPromptOpen ?? true); + const mode = useSelector((state: RootState) => state.ui.mode); + const { collapsed } = useSidebar(); + const handleClose = () => { + dispatch(setStarPromptOpen(false)); + }; + + const handleStarClick = () => { + window.open(repoUrl, "_blank"); + }; + + if (collapsed) return null; + if (!isOpen) return null; + + return ( + + + + {t("starPromptTitle")} + + + + + + + + {t("starPromptDescription")} + + + + + ); +}; diff --git a/client/src/Components/v2/sidebar/index.tsx b/client/src/Components/v2/sidebar/index.tsx index e278092eb..e3056c9f4 100644 --- a/client/src/Components/v2/sidebar/index.tsx +++ b/client/src/Components/v2/sidebar/index.tsx @@ -6,6 +6,7 @@ import { useSidebar } from "@/Hooks/useSidebar.js"; import { Logo } from "@/Components/v2/sidebar/Logo"; import { getMenu, getBottomMenu } from "@/Components/v2/sidebar/Menu"; import { NavItem } from "@/Components/v2/sidebar/NavItem"; +import { StarPrompt } from "@/Components/v2/sidebar/StarPrompt"; import { useNavigate, useLocation } from "react-router"; import { useTranslation } from "react-i18next"; @@ -89,6 +90,7 @@ export const Sidebar = () => { ); })} +