Adrien Béraud | ab519ff | 2022-05-03 15:34:48 -0400 | [diff] [blame] | 1 | import List from '@mui/material/List' |
Adrien Béraud | 023f7cf | 2022-09-18 14:57:53 -0400 | [diff] [blame] | 2 | import { useEffect } from "react"; |
Adrien Béraud | 995e802 | 2021-04-08 13:46:51 -0400 | [diff] [blame] | 3 | import ConversationListItem from './ConversationListItem' |
Adrien Béraud | ab519ff | 2022-05-03 15:34:48 -0400 | [diff] [blame] | 4 | import ListSubheader from '@mui/material/ListSubheader'; |
Adrien Béraud | 35e7d7c | 2021-04-13 03:28:39 -0400 | [diff] [blame] | 5 | import Conversation from '../../../model/Conversation'; |
Adrien Béraud | ab519ff | 2022-05-03 15:34:48 -0400 | [diff] [blame] | 6 | import { GroupRounded as GroupIcon } from '@mui/icons-material'; |
| 7 | import Typography from '@mui/material/Typography'; |
ervinanoh | 34eb947 | 2022-09-13 04:20:28 -0400 | [diff] [blame] | 8 | import { useAppSelector } from '../../redux/hooks'; |
Adrien Béraud | 995e802 | 2021-04-08 13:46:51 -0400 | [diff] [blame] | 9 | |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 10 | export default function ConversationList(props) { |
Adrien Béraud | 2b3c2cd | 2022-09-18 14:24:33 -0400 | [diff] [blame] | 11 | const { refresh } = useAppSelector((state) => state.app) |
ervinanoh | 34eb947 | 2022-09-13 04:20:28 -0400 | [diff] [blame] | 12 | |
Adrien Béraud | 2b3c2cd | 2022-09-18 14:24:33 -0400 | [diff] [blame] | 13 | useEffect(() => { |
ervinanoh | 34eb947 | 2022-09-13 04:20:28 -0400 | [diff] [blame] | 14 | console.log("refresh list"); |
Adrien Béraud | 2b3c2cd | 2022-09-18 14:24:33 -0400 | [diff] [blame] | 15 | }, [refresh]) |
ervinanoh | 34eb947 | 2022-09-13 04:20:28 -0400 | [diff] [blame] | 16 | |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 17 | return ( |
| 18 | <div className="rooms-list"> |
| 19 | <List> |
| 20 | {props.search instanceof Conversation && |
| 21 | (<div> |
| 22 | <ListSubheader>Public directory</ListSubheader> |
| 23 | <ConversationListItem conversation={props.search} /> |
Adrien Béraud | 35e7d7c | 2021-04-13 03:28:39 -0400 | [diff] [blame] | 24 | <ListSubheader>Conversations</ListSubheader> |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 25 | </div>)} |
| 26 | {props.conversations.map(conversation => |
| 27 | <ConversationListItem key={conversation.getId()} conversation={conversation} /> |
| 28 | )} |
| 29 | {props.conversations.length === 0 && ( |
| 30 | <div className="list-placeholder"> |
Adrien Béraud | 150b478 | 2021-04-21 19:40:59 -0400 | [diff] [blame] | 31 | <GroupIcon color="disabled" fontSize="large" /> |
Adrien Béraud | af09a46 | 2021-04-15 18:02:29 -0400 | [diff] [blame] | 32 | <Typography className="subtitle" variant="subtitle2">No conversation yet</Typography> |
| 33 | </div> |
| 34 | )} |
| 35 | </List> |
| 36 | </div> |
| 37 | ) |
Adrien Béraud | 995e802 | 2021-04-08 13:46:51 -0400 | [diff] [blame] | 38 | } |