chatbot-ui/components/chat/chat-help.tsx

209 lines
6.8 KiB
TypeScript

import useHotkey from "@/lib/hooks/use-hotkey"
import {
IconBrandGithub,
IconBrandX,
IconHelpCircle,
IconQuestionMark
} from "@tabler/icons-react"
import Link from "next/link"
import { FC, useState } from "react"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger
} from "../ui/dropdown-menu"
import { Announcements } from "../utility/announcements"
interface ChatHelpProps {}
export const ChatHelp: FC<ChatHelpProps> = ({}) => {
useHotkey("/", () => setIsOpen(prevState => !prevState))
const [isOpen, setIsOpen] = useState(false)
return (
<DropdownMenu open={isOpen} onOpenChange={setIsOpen}>
<DropdownMenuTrigger asChild>
<IconQuestionMark className="bg-primary text-secondary size-[24px] cursor-pointer rounded-full p-0.5 opacity-60 hover:opacity-50 lg:size-[30px] lg:p-1" />
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuLabel className="flex items-center justify-between">
<div className="flex space-x-2">
<Link
className="cursor-pointer hover:opacity-50"
href="https://twitter.com/ChatbotUI"
target="_blank"
rel="noopener noreferrer"
>
<IconBrandX />
</Link>
<Link
className="cursor-pointer hover:opacity-50"
href="https://github.com/mckaywrigley/chatbot-ui"
target="_blank"
rel="noopener noreferrer"
>
<IconBrandGithub />
</Link>
</div>
<div className="flex space-x-2">
<Announcements />
<Link
className="cursor-pointer hover:opacity-50"
href="/help"
target="_blank"
rel="noopener noreferrer"
>
<IconHelpCircle size={24} />
</Link>
</div>
</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuItem className="flex justify-between">
<div>Show Help</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
/
</div>
</div>
</DropdownMenuItem>
<DropdownMenuItem className="flex justify-between">
<div>Show Workspaces</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
;
</div>
</div>
</DropdownMenuItem>
<DropdownMenuItem className="flex w-[300px] justify-between">
<div>New Chat</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
O
</div>
</div>
</DropdownMenuItem>
<DropdownMenuItem className="flex justify-between">
<div>Focus Chat</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
L
</div>
</div>
</DropdownMenuItem>
<DropdownMenuItem className="flex justify-between">
<div>Toggle Files</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
F
</div>
</div>
</DropdownMenuItem>
<DropdownMenuItem className="flex justify-between">
<div>Toggle Retrieval</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
E
</div>
</div>
</DropdownMenuItem>
<DropdownMenuItem className="flex justify-between">
<div>Open Settings</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
I
</div>
</div>
</DropdownMenuItem>
<DropdownMenuItem className="flex justify-between">
<div>Open Quick Settings</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
P
</div>
</div>
</DropdownMenuItem>
<DropdownMenuItem className="flex justify-between">
<div>Toggle Sidebar</div>
<div className="flex opacity-60">
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
Shift
</div>
<div className="min-w-[30px] rounded border-DEFAULT p-1 text-center">
S
</div>
</div>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
)
}