diff --git a/src/app/project/room.tsx b/src/app/project/room.tsx index 0738927..9861665 100644 --- a/src/app/project/room.tsx +++ b/src/app/project/room.tsx @@ -29,6 +29,7 @@ function ProjectRoomInner() { members, } = useRoom(); + const [showChannelSidebar, setShowChannelSidebar] = useState(true); const [createDialogOpen, setCreateDialogOpen] = useState(false); const [editDialogOpen, setEditDialogOpen] = useState(false); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); @@ -119,16 +120,18 @@ function ProjectRoomInner() { return (
{/* Channel sidebar */} - ({ id: c.id, name: c.name }))} - onCreateCategory={handleCreateCategory} - onMoveRoomToCategory={handleMoveRoomToCategory} - /> + {showChannelSidebar && ( + ({ id: c.id, name: c.name }))} + onCreateCategory={handleCreateCategory} + onMoveRoomToCategory={handleMoveRoomToCategory} + /> + )} {/* Main chat area */} {activeRoom ? ( @@ -136,6 +139,8 @@ function ProjectRoomInner() { room={activeRoom} isAdmin={isAdmin} onClose={handleClose} + onToggleChannelSidebar={() => setShowChannelSidebar((v) => !v)} + channelSidebarOpen={showChannelSidebar} onDelete={() => setDeleteDialogOpen(true)} /> ) : ( diff --git a/src/components/room/DiscordChatPanel.tsx b/src/components/room/DiscordChatPanel.tsx index ffd11b9..2ce286f 100644 --- a/src/components/room/DiscordChatPanel.tsx +++ b/src/components/room/DiscordChatPanel.tsx @@ -10,7 +10,7 @@ import type { MessageWithMeta } from '@/contexts'; import { cn } from '@/lib/utils'; import { Hash, Lock, Users, Search, ChevronLeft, - AtSign, Pin, Settings, + AtSign, Pin, Settings, PanelLeft, } from 'lucide-react'; import { useCallback, @@ -38,9 +38,11 @@ interface DiscordChatPanelProps { isAdmin: boolean; onClose: () => void; onDelete: () => void; + onToggleChannelSidebar: () => void; + channelSidebarOpen: boolean; } -export function DiscordChatPanel({ room, isAdmin, onClose, onDelete }: DiscordChatPanelProps) { +export function DiscordChatPanel({ room, isAdmin, onClose, onDelete, onToggleChannelSidebar, channelSidebarOpen }: DiscordChatPanelProps) { const { messages, members, @@ -67,7 +69,7 @@ export function DiscordChatPanel({ room, isAdmin, onClose, onDelete }: DiscordCh const [selectedMessageForHistory, setSelectedMessageForHistory] = useState(''); const [showSettings, setShowSettings] = useState(false); const [showMentions, setShowMentions] = useState(false); - const [showMemberList, setShowMemberList] = useState(true); + const [showMemberList, setShowMemberList] = useState(false); const [showSearch, setShowSearch] = useState(false); const [activeThread, setActiveThread] = useState<{ thread: RoomThreadResponse; parentMessage: MessageWithMeta } | null>(null); const [isUpdatingRoom, setIsUpdatingRoom] = useState(false); @@ -79,7 +81,8 @@ export function DiscordChatPanel({ room, isAdmin, onClose, onDelete }: DiscordCh const handleSend = useCallback( (content: string) => { - sendMessage(content, 'text', replyingTo?.id ?? undefined); + const attachmentIds = messageInputRef.current?.getAttachmentIds() ?? []; + sendMessage(content, 'text', replyingTo?.id ?? undefined, attachmentIds.length > 0 ? attachmentIds : undefined); setReplyingTo(null); messageInputRef.current?.clearContent(); }, @@ -260,6 +263,18 @@ export function DiscordChatPanel({ room, isAdmin, onClose, onDelete }: DiscordCh )} + +