updated chat andlayout

This commit is contained in:
David Bruno Vontor
2026-06-03 17:07:34 +02:00
parent 3d1965e5e6
commit bb09f0ccd3
13 changed files with 799 additions and 107 deletions

View File

@@ -1,11 +1,34 @@
import { useState } from "react";
import { Outlet } from "react-router-dom";
import { FiMenu, FiChevronsLeft } from "react-icons/fi";
import ChatSidebar from "@/components/social/chat/ChatSidebar";
export default function ChatLayout() {
const [open, setOpen] = useState(true);
return (
<div className="grid h-[calc(100vh-0px)] grid-cols-[280px_1fr]">
<ChatSidebar />
<section className="flex h-full flex-col overflow-hidden">
<div
className={[
"grid h-screen transition-[grid-template-columns] duration-200",
open ? "grid-cols-[280px_1fr]" : "grid-cols-[0px_1fr]",
].join(" ")}
>
{/* Sidebar — hidden via overflow+width collapse, not unmount (keeps scroll pos) */}
<div className="overflow-hidden">
<ChatSidebar />
</div>
<section className="relative flex h-full flex-col overflow-hidden">
{/* Sidebar toggle — sits at the top-left of the chat pane */}
<button
type="button"
onClick={() => setOpen((v) => !v)}
className="absolute left-3 top-3 z-20 flex h-7 w-7 items-center justify-center rounded-full bg-brand-bgLight/60 text-brand-text/60 hover:bg-brand-lines/20 hover:text-brand-text transition-colors"
aria-label={open ? "Hide sidebar" : "Show sidebar"}
>
{open ? <FiChevronsLeft size={15} /> : <FiMenu size={15} />}
</button>
<Outlet />
</section>
</div>