jitsi-roomsv2/frontend/src/components/sidebar/Sidebar.tsx

57 lines
1.8 KiB
TypeScript
Raw Normal View History

2023-01-07 19:06:04 +01:00
import SidebarHeader from "./SidebarHeader";
import useSidebarVisibility from "./useSidebarVisibility";
import "./Sidebar.css";
2023-02-07 20:31:07 +01:00
import { UsersData } from "../../background/types/roomData";
2023-04-08 15:58:11 +02:00
import useMeetingStarted from "../../hooks/useMeetingStarted";
import { useRoomName } from "../../hooks/useRoomName";
import Chat from "../chat/Chat";
2023-01-07 19:06:04 +01:00
2023-02-07 20:31:07 +01:00
interface Props {
usersData: UsersData;
2023-04-08 15:58:11 +02:00
sendMessage: Function
2023-02-07 20:31:07 +01:00
}
function Sidebar(props: Props) {
2023-01-07 19:06:04 +01:00
const { sidebarVisibility, toggleSidebarVisibility, sidebarToggleText } =
useSidebarVisibility();
2023-04-08 15:58:11 +02:00
const [_, setMeetingStarted] = useMeetingStarted()
const { updateAndSubmitRoomName: updateAndSubmitRoomName } = useRoomName();
2023-01-07 19:06:04 +01:00
return (
2023-01-10 19:04:53 +01:00
<div className={`sidebar sidebar-${sidebarVisibility}`}>
2023-01-07 19:06:04 +01:00
<SidebarHeader sidebarVisibility={sidebarVisibility} />
2023-04-09 10:36:52 +02:00
<div className="sidebar-body">
2023-02-07 20:31:07 +01:00
{props.usersData.roomsData.map((roomData) => {
return (
<>
2023-04-07 16:21:15 +02:00
<h3>
<a href="#" onClick={() => {
2023-04-08 15:58:11 +02:00
updateAndSubmitRoomName(roomData.roomName)
setMeetingStarted(true)
2023-04-07 16:21:15 +02:00
}}>
{roomData.roomName}
</a>
</h3>
2023-02-07 20:31:07 +01:00
{roomData.participants.map((participant) => (
2023-04-08 15:58:11 +02:00
<div key={participant.jid}> {participant.displayName} </div>
2023-02-07 20:31:07 +01:00
))}
</>
);
})}
</div>
2023-04-07 16:21:15 +02:00
<div>
<h3> No room</h3>
2023-04-08 15:58:11 +02:00
{props.usersData.usersWithOutRoom.map((user) => (
<div key={user.uuid}>{user.name}</div>
2023-04-07 16:21:15 +02:00
))}
</div>
2023-01-07 19:06:04 +01:00
<div className="sidebar-footer">
2023-04-09 10:36:52 +02:00
{sidebarVisibility === "full" && <Chat sendMessage={props.sendMessage} />}
2023-04-08 15:58:11 +02:00
<button className="sidebar-toggle" onClick={toggleSidebarVisibility}>{sidebarToggleText}</button>
2023-01-07 19:06:04 +01:00
</div>
</div>
);
}
export default Sidebar;