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

61 lines
2.3 KiB
TypeScript
Raw Normal View History

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