first commit
This commit is contained in:
55
src/pages/Messages.jsx
Normal file
55
src/pages/Messages.jsx
Normal file
@@ -0,0 +1,55 @@
|
||||
import React, { useState, useEffect, useRef } from 'react';
|
||||
|
||||
import Sidebar from '../partials/Sidebar';
|
||||
import Header from '../partials/Header';
|
||||
import MessagesSidebar from '../partials/messages/MessagesSidebar';
|
||||
import MessagesHeader from '../partials/messages/MessagesHeader';
|
||||
import MessagesBody from '../partials/messages/MessagesBody';
|
||||
import MessagesFooter from '../partials/messages/MessagesFooter';
|
||||
|
||||
function Messages() {
|
||||
|
||||
const contentArea = useRef(null)
|
||||
|
||||
const [sidebarOpen, setSidebarOpen] = useState(false);
|
||||
const [msgSidebarOpen, setMsgSidebarOpen] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
contentArea.current.scrollTop = 99999999
|
||||
}, [msgSidebarOpen]); // automatically scroll the chat and make the most recent message visible
|
||||
|
||||
return (
|
||||
<div className="flex h-screen overflow-hidden">
|
||||
|
||||
{/* Sidebar */}
|
||||
<Sidebar sidebarOpen={sidebarOpen} setSidebarOpen={setSidebarOpen} />
|
||||
|
||||
{/* Content area */}
|
||||
<div className="relative flex flex-col flex-1 overflow-y-auto overflow-x-hidden" ref={contentArea}>
|
||||
|
||||
{/* Site header */}
|
||||
<Header sidebarOpen={sidebarOpen} setSidebarOpen={setSidebarOpen} />
|
||||
|
||||
<main>
|
||||
<div className="relative flex">
|
||||
|
||||
{/* Messages sidebar */}
|
||||
<MessagesSidebar msgSidebarOpen={msgSidebarOpen} setMsgSidebarOpen={setMsgSidebarOpen} />
|
||||
|
||||
{/* Messages body */}
|
||||
<div className={`grow flex flex-col md:translate-x-0 transform transition-transform duration-300 ease-in-out ${msgSidebarOpen ? 'translate-x-1/3' : 'translate-x-0'}`}>
|
||||
<MessagesHeader msgSidebarOpen={msgSidebarOpen} setMsgSidebarOpen={setMsgSidebarOpen} />
|
||||
<MessagesBody />
|
||||
<MessagesFooter />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</main>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default Messages;
|
||||
Reference in New Issue
Block a user