@@ -33,21 +33,10 @@ const Icons = {
3333const useStyles = makeStyles ( ( theme ) => ( {
3434 root : {
3535 display : 'flex' ,
36- flexGrow : 0 ,
37- flexShrink : 1 ,
38- width : '20rem' ,
36+ flexGrow : 1 ,
37+ minWidth : 0 ,
3938 flexDirection : 'column' ,
4039 height : '100%' ,
41- [ theme . breakpoints . down ( 'sm' ) ] : {
42- width : '100%' ,
43- flexGrow : 1 ,
44- } ,
45- } ,
46- closed : {
47- flexGrow : 0 ,
48- width : 0 ,
49- position : 'relative' ,
50- border : 'none' ,
5140 } ,
5241 messages : {
5342 display : 'flex' ,
@@ -85,14 +74,8 @@ const useStyles = makeStyles((theme) => ({
8574 'user-select' : 'text' ,
8675 } ,
8776 toolbarClosed : {
88- position : 'absolute' ,
89- width : '10em' ,
90- right : 0 ,
91- } ,
92- hiddenOnMobile : {
93- [ theme . breakpoints . down ( 'sm' ) ] : {
94- display : 'none' ,
95- } ,
77+ justifyContent : 'center' ,
78+ padding : 0 ,
9679 } ,
9780} ) ) ;
9881
@@ -105,11 +88,10 @@ const UNKOWN_USER = {
10588} ;
10689
10790function Chat ( {
108- dispatch, messages, users, user,
91+ dispatch, messages, users, user, open , onToggle ,
10992} ) {
11093 const classes = useStyles ( ) ;
11194 const [ message , setMessage ] = useState ( '' ) ;
112- const [ open , setOpen ] = useState ( true ) ;
11395 const listRef = useRef ( ) ;
11496
11597 const findUser = ( id ) => {
@@ -157,22 +139,24 @@ function Chat({
157139
158140 return (
159141 < Panel
160- className = { clsx ( classes . root , {
161- [ classes . closed ] : ! open ,
162- } ) }
142+ className = { classes . root }
163143 toolbar = { (
164144 < Toolbar
165145 variant = "dense"
166146 className = { clsx ( {
167147 [ classes . toolbarClosed ] : ! open ,
168148 } ) }
169149 >
170- < Typography variant = "h6" style = { { flexGrow : 1 } } >
171- Chat
172- </ Typography >
173- < IconButton className = { classes . hiddenOnMobile } onClick = { ( ) => setOpen ( ! open ) } >
174- { open ? < ArrowForwardIcon /> : < ArrowBackIcon /> }
175- </ IconButton >
150+ { open && (
151+ < Typography variant = "h6" style = { { flexGrow : 1 } } >
152+ Chat
153+ </ Typography >
154+ ) }
155+ { onToggle && (
156+ < IconButton onClick = { onToggle } aria-label = { open ? 'Close chat' : 'Open chat' } >
157+ { open ? < ArrowForwardIcon /> : < ArrowBackIcon /> }
158+ </ IconButton >
159+ ) }
176160 </ Toolbar >
177161 ) }
178162 >
@@ -278,6 +262,8 @@ Chat.propTypes = {
278262 id : PropTypes . number ,
279263 canJoinRoom : PropTypes . bool ,
280264 } ) ,
265+ open : PropTypes . bool ,
266+ onToggle : PropTypes . func ,
281267} ;
282268
283269Chat . defaultProps = {
@@ -287,6 +273,8 @@ Chat.defaultProps = {
287273 id : undefined ,
288274 canJoinRoom : false ,
289275 } ,
276+ open : true ,
277+ onToggle : undefined ,
290278} ;
291279
292280const mapStateToProps = ( state ) => ( {
0 commit comments