import { type ReactNode } from 'react' import { useNavigate, useSearchParams, Navigate } from 'react-router' import { ArrowLeft, Package, ClipboardList } from 'lucide-react' import { cn, interactive } from '@/lib' import { MainLayout, MainHeaderBar } from '@/layouts' import { ChatContainer, ItemSection, RemainingTime } from '@/features/chat' import { MobileDrawer } from '@/features/chat/components/MobileDrawer' import { MenuSection } from '@/features/chat/components/menu/MenuSection' import { useChatUiStore } from '@/features/chat/stores/useChatUiStore' import { SidebarFooter } from '@/features/auth' export function ChatPage() { const [searchParams] = useSearchParams() const sessionId = searchParams.get('session_id') ?? '' const drawer = useChatUiStore((s) => s.drawer) const close = useChatUiStore((s) => s.close) // session_id 없이 진입하면 목록으로 되돌린다. if (!sessionId) return return ( <> } header={ 실시간 구매 협상 채널 } label="상품" panel="product" /> } label="현황" panel="status" /> } > {/* 모바일 드로어 (lg 미만) */} > ) } // 헤더 좌상단: 목록으로 돌아가기 (텍스트 + ← 아이콘) function BackToListButton() { const navigate = useNavigate() return ( navigate('/list')} className={cn( 'flex shrink-0 items-center gap-1.5 rounded-lg px-2 py-1.5 text-sm font-bold text-neutral-70 hover:bg-neutral-10', interactive, )} > 목록으로 돌아가기 ) } // 헤더 우측: 상품/현황 패널 드로어 토글 (모바일 전용) function PanelToggle({ icon, label, panel, }: { icon: ReactNode label: string panel: 'product' | 'status' }) { const open = useChatUiStore((s) => s.open) return ( open(panel)} className={cn( 'flex items-center gap-1 rounded-lg border border-border px-2 py-1.5 text-xs font-bold text-neutral-70 hover:bg-neutral-10 lg:hidden', interactive, )} > {icon} {label} ) } function Sidebar() { return ( <> > ) } export default ChatPage