blob: ee090944af4047c3230405ccd3a6c73d7a11b072 [file] [log] [blame]
Adrien Béraud21c53cf2021-04-22 00:04:32 -04001import React from 'react'
2import { makeStyles } from '@material-ui/core/styles'
3import { List, ListItem, ListItemIcon, ListItemSecondaryAction, ListItemText, ListSubheader, Switch, Typography, Grid, Paper, CardContent, Card, TableContainer, Table, TableHead, TableRow, TableCell, TableBody, Toolbar, IconButton, ListItemAvatar, Input, TextField } from '@material-ui/core'
4import { PhoneCallbackRounded, GroupRounded, DeleteRounded, AccountCircle, AddCircle } from '@material-ui/icons'
Adrien Béraud6ecaa402021-04-06 17:37:25 -04005
Adrien Béraud21c53cf2021-04-22 00:04:32 -04006import Account from '../../../model/Account'
7import JamiIdCard from './JamiIdCard'
8import ConversationAvatar from './ConversationAvatar'
9import ConversationsOverviewCard from './ConversationsOverviewCard'
Adrien Béraud6ecaa402021-04-06 17:37:25 -040010
Adrien Béraud21c53cf2021-04-22 00:04:32 -040011const useStyles = makeStyles(theme => ({
Adrien Béraud150b4782021-04-21 19:40:59 -040012 root: {
13 minWidth: 275,
14 },
Adrien Béraud150b4782021-04-21 19:40:59 -040015 title: {
16 fontSize: 14,
Adrien Béraud21c53cf2021-04-22 00:04:32 -040017 flexGrow: 1
Adrien Béraud150b4782021-04-21 19:40:59 -040018 },
19 pos: {
20 marginBottom: 12,
21 },
Adrien Béraud21c53cf2021-04-22 00:04:32 -040022 paper: {
23 marginTop: 24,
24 marginBottom: 24
Adrien Béraud150b4782021-04-21 19:40:59 -040025 },
Adrien Béraud21c53cf2021-04-22 00:04:32 -040026 textField: {
27 //marginLeft: theme.spacing(1),
28 marginRight: theme.spacing(2),
29 }
30}))
Adrien Béraud150b4782021-04-21 19:40:59 -040031
32export default function AccountPreferences(props) {
33 const classes = useStyles()
34 const account = props.account
35 const isJamiAccount = account.getType() === Account.TYPE_JAMI
36 const alias = isJamiAccount ? "Jami account" : "SIP account"
Adrien Béraud21c53cf2021-04-22 00:04:32 -040037 const moderators = account.getDefaultModerators()
Adrien Béraud150b4782021-04-21 19:40:59 -040038 return (
39 <React.Fragment>
40 <Typography variant="h2" component="h2" gutterBottom>{alias}</Typography>
Adrien Béraud21c53cf2021-04-22 00:04:32 -040041 <Grid container spacing={3} style={{ marginBottom: 16 }}>
Adrien Béraud150b4782021-04-21 19:40:59 -040042 {isJamiAccount &&
43 <Grid item xs={12}><JamiIdCard account={account} /></Grid>}
44
45 <Grid item xs={12} sm={6}>
46 <ConversationsOverviewCard accountId={account.getId()} />
47 </Grid>
48
49 <Grid item xs={12} sm={6}>
50 <Card>
51 <CardContent>
52 <Typography className={classes.title} color="textSecondary" gutterBottom>
53 Current calls
54 </Typography>
55 <Typography gutterBottom variant="h5" component="h2">
56 0
57 </Typography>
58 </CardContent>
59 </Card>
60 </Grid>
61 </Grid>
62
63 <List subheader={<ListSubheader>Settings</ListSubheader>}>
64 <ListItem>
65 <ListItemIcon>
66 <GroupRounded />
67 </ListItemIcon>
68 <ListItemText id="switch-list-label-rendezvous" primary="Rendez-Vous point" />
69 <ListItemSecondaryAction>
70 <Switch
71 edge="end"
72 /*onChange={handleToggle('wifi')}*/
73 checked={account.isRendezVous()}
Adrien Béraud21c53cf2021-04-22 00:04:32 -040074 inputProps={{ 'aria-labelledby': 'switch-list-label-rendezvous' }}
Adrien Béraud150b4782021-04-21 19:40:59 -040075 />
76 </ListItemSecondaryAction>
77 </ListItem>
78 <ListItem>
79 <ListItemIcon>
80 <PhoneCallbackRounded />
81 </ListItemIcon>
82 <ListItemText id="switch-list-label-publicin" primary="Allow connection from unkown peers" />
83 <ListItemSecondaryAction>
84 <Switch
85 edge="end"
86 /*onChange={handleToggle('bluetooth')}*/
87 checked={account.isPublicIn()}
Adrien Béraud21c53cf2021-04-22 00:04:32 -040088 inputProps={{ 'aria-labelledby': 'switch-list-label-publicin' }}
Adrien Béraud150b4782021-04-21 19:40:59 -040089 />
90 </ListItemSecondaryAction>
91 </ListItem>
Adrien Béraud21c53cf2021-04-22 00:04:32 -040092
93 <Paper className={classes.paper}>
94 <Toolbar>
95 <Typography className={classes.title} variant="h6">
96 Default moderators
97 </Typography>
98 </Toolbar>
99 <List>
100 <ListItem key="add">
101 <TextField variant="outlined" className={classes.textField} label="Add new default moderator" placeholder="Enter new moderator name or URI" fullWidth />
102 <ListItemSecondaryAction>
103 <IconButton><AddCircle /></IconButton>
104 </ListItemSecondaryAction>
105 </ListItem>
106 {moderators.length === 0 ?
107 <ListItem key="placeholder">
108 <ListItemText primary="No default moderator" /></ListItem> :
109 moderators.map((moderator) => (
110 <ListItem key={moderator.name}>
111 <ListItemAvatar>
112 <ConversationAvatar name={moderator.name} />
113 </ListItemAvatar>
114 <ListItemText primary={moderator.name} />
115 <ListItemSecondaryAction>
116 <IconButton><DeleteRounded /></IconButton>
117 </ListItemSecondaryAction>
118 </ListItem>
119 ))}
120 </List>
121 </Paper>
Adrien Béraud150b4782021-04-21 19:40:59 -0400122 </List>
123
Adrien Béraud150b4782021-04-21 19:40:59 -0400124 </React.Fragment>)
125}