"use client"; import dayjs from "dayjs"; import duration from "dayjs/plugin/duration"; import relativeTime from "dayjs/plugin/relativeTime"; import { useState, useEffect } from "react"; import { useTranslation } from "@turbostarter/i18n"; import { Button } from "@turbostarter/ui-web/button"; import { CommandDialog, CommandEmpty, CommandInput, CommandList, } from "@turbostarter/ui-web/command"; import { Icons } from "@turbostarter/ui-web/icons"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@turbostarter/ui-web/tooltip"; import { ChatActions } from "./actions"; import { ChatHistoryList } from "./list"; dayjs.extend(duration); dayjs.extend(relativeTime); interface CommandMenuProps { open: boolean; onOpenChange: (open: boolean) => void; } const CommandMenu = ({ open, onOpenChange }: CommandMenuProps) => { const { t } = useTranslation("ai"); return ( {t("chat.command.empty")} onOpenChange(false)} /> onOpenChange(false)} /> ); }; export const ChatHistory = () => { const { t } = useTranslation("common"); const [isOpen, setIsOpen] = useState(false); useEffect(() => { const down = (e: KeyboardEvent) => { if (e.key === "k" && (e.metaKey || e.ctrlKey)) { e.preventDefault(); setIsOpen((open) => !open); } }; document.addEventListener("keydown", down); return () => document.removeEventListener("keydown", down); }, []); return ( <> {t("history")} {/* eslint-disable-next-line i18next/no-literal-string */} K ); };