2023-04-10 23:28:28 +02:00
|
|
|
import SidebarHeader from './SidebarHeader'
|
|
|
|
import useSidebarVisibility from './useSidebarVisibility'
|
|
|
|
import './Sidebar.css'
|
|
|
|
import { UsersData } from '../../background/types/roomData'
|
|
|
|
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 {
|
2023-04-10 23:28:28 +02:00
|
|
|
usersData: UsersData
|
|
|
|
sendMessage: Function
|
2023-02-07 20:31:07 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
function Sidebar(props: Props) {
|
2023-04-10 23:28:28 +02:00
|
|
|
const { sidebarVisibility, toggleSidebarVisibility, sidebarToggleText } = useSidebarVisibility()
|
|
|
|
const [_, setMeetingStarted] = useMeetingStarted()
|
|
|
|
const { updateAndSubmitRoomName: updateAndSubmitRoomName } = useRoomName()
|
2023-01-07 19:06:04 +01:00
|
|
|
|
2023-04-10 23:28:28 +02:00
|
|
|
return (
|
|
|
|
<div className={`sidebar sidebar-${sidebarVisibility}`}>
|
|
|
|
<SidebarHeader sidebarVisibility={sidebarVisibility} />
|
|
|
|
<div className="sidebar-body">
|
|
|
|
{props.usersData.roomsData.map((roomData) => {
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<h3>
|
|
|
|
<a
|
|
|
|
href="#"
|
|
|
|
onClick={() => {
|
|
|
|
updateAndSubmitRoomName(roomData.roomName)
|
|
|
|
setMeetingStarted(true)
|
|
|
|
}}
|
|
|
|
>
|
|
|
|
{roomData.roomName}
|
|
|
|
</a>
|
|
|
|
</h3>
|
|
|
|
{roomData.participants.map((participant) => (
|
|
|
|
<div key={participant.jid}> {participant.displayName} </div>
|
|
|
|
))}
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
})}
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<h3> No room</h3>
|
|
|
|
{props.usersData.usersWithOutRoom.map((user) => (
|
|
|
|
<div key={user.uuid}>{user.name}</div>
|
|
|
|
))}
|
|
|
|
</div>
|
|
|
|
<div className="sidebar-footer">
|
|
|
|
{sidebarVisibility === 'full' && <Chat sendMessage={props.sendMessage} />}
|
|
|
|
<button className="sidebar-toggle" onClick={toggleSidebarVisibility}>
|
|
|
|
{sidebarToggleText}
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
)
|
2023-01-07 19:06:04 +01:00
|
|
|
}
|
|
|
|
|
2023-04-10 23:28:28 +02:00
|
|
|
export default Sidebar
|