import type { CSSProperties } from "react"; import { BookOpen, Keyboard, Puzzle, Settings2 } from "lucide-react"; import { AnimatedThemeToggler } from "@/components/ui/animated-theme-toggler"; import { GitHubLink } from "@/components/layout/github-link"; import { VersionReleaseModal } from "@/components/layout/version-release-modal"; import { DOCS_URL } from "@/constant/env"; import { cn } from "@/lib/utils"; import { canvasThemes } from "@/lib/canvas-theme"; import { useConfigStore } from "@/stores/use-config-store"; import { useThemeStore } from "@/stores/use-theme-store"; type UserStatusActionsProps = { showConfig?: boolean; variant?: "default" | "canvas"; onOpenShortcuts?: () => void; onOpenPlugins?: () => void; }; export function UserStatusActions({ showConfig = true, variant = "default", onOpenShortcuts, onOpenPlugins }: UserStatusActionsProps) { const theme = useThemeStore((state) => state.theme); const setTheme = useThemeStore((state) => state.setTheme); const openConfigDialog = useConfigStore((state) => state.openConfigDialog); const canvasTheme = canvasThemes[theme]; const naturalIconClass = "inline-flex size-7 shrink-0 items-center justify-center text-stone-600 transition hover:text-stone-950 dark:text-stone-300 dark:hover:text-white [&_svg]:size-4"; const iconStyle: CSSProperties | undefined = variant === "canvas" ? { color: canvasTheme.node.text } : undefined; const versionStyle = iconStyle; const gitHubClassName = "size-7 text-base"; const gitHubStyle = iconStyle; return (
{onOpenPlugins ? ( ) : null} {showConfig ? ( ) : null} {onOpenShortcuts ? ( ) : null}
); }