"use client"; import { useRef, useState, useCallback } from "react"; import { SidebarTrigger } from "@multica/ui/components/ui/sidebar"; import { Button } from "@multica/ui/components/ui/button"; import { ChatInput } from "@multica/ui/components/chat-input"; import { MemoizedMarkdown } from "@multica/ui/components/markdown"; import { useMessages } from "../hooks/use-messages"; import { useDeviceId } from "../hooks/use-device-id"; import { useScrollFade } from "../hooks/use-scroll-fade"; import { cn } from "@multica/ui/lib/utils"; import { HugeiconsIcon } from "@hugeicons/react"; import { Copy01Icon, CheckmarkCircle02Icon } from "@hugeicons/core-free-icons"; import { toast } from "@multica/ui/components/ui/sonner"; export function Chat() { const deviceId = useDeviceId(); const messages = useMessages(); const mainRef = useRef(null); const fadeStyle = useScrollFade(mainRef); const [copied, setCopied] = useState(false); const handleCopy = useCallback(async () => { if (!deviceId) return; await navigator.clipboard.writeText(deviceId); setCopied(true); toast.success("Device ID copied"); setTimeout(() => setCopied(false), 2000); }, [deviceId]); return (
{deviceId || "\u00A0"} {deviceId && ( )}
{messages.map((msg) => (
{msg.content}
))}
); }