@@ -3,9 +3,13 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
33import { faUserPlus } from '@fortawesome/free-solid-svg-icons/faUserPlus' ;
44import { ServerContext } from '@/state/server' ;
55import Spinner from '@/components/elements/Spinner' ;
6+ import { Subuser } from '@/state/server/subusers' ;
7+ import { CSSTransition } from 'react-transition-group' ;
68
79export default ( ) => {
810 const [ loading , setLoading ] = useState ( true ) ;
11+ const [ editSubuser , setEditSubuser ] = useState < Subuser | null > ( null ) ;
12+
913 const uuid = ServerContext . useStoreState ( state => state . server . data ! . uuid ) ;
1014 const subusers = ServerContext . useStoreState ( state => state . subusers . data ) ;
1115 const getSubusers = ServerContext . useStoreActions ( actions => actions . subusers . getSubusers ) ;
@@ -22,7 +26,7 @@ export default () => {
2226 if ( subusers . length > 0 ) {
2327 setLoading ( false ) ;
2428 }
25- } , [ subusers ] ) ;
29+ } , [ subusers ] ) ;
2630
2731 return (
2832 < div className = { 'flex my-10' } >
@@ -47,23 +51,39 @@ export default () => {
4751 < p className = { 'text-sm' } > { subuser . email } </ p >
4852 </ div >
4953 < div className = { 'ml-4' } >
50- < button className = { 'btn btn-xs btn-primary' } >
54+ < button
55+ className = { 'btn btn-xs btn-primary' }
56+ onClick = { ( ) => setEditSubuser ( subuser ) }
57+ >
5158 Edit
5259 </ button >
53- < button className = { 'ml-2 btn btn-xs btn-red btn-secondary' } >
60+ < button
61+ className = { 'ml-2 btn btn-xs btn-red btn-secondary' }
62+ onClick = { ( ) => setEditSubuser ( null ) }
63+ >
5464 Remove
5565 </ button >
5666 </ div >
5767 </ div >
5868 ) )
5969 }
6070 </ div >
61- < div className = { 'flex justify-end mt-4 ' } >
71+ < div className = { 'flex justify-end mt-6 ' } >
6272 < button className = { 'btn btn-primary btn-sm' } >
6373 < FontAwesomeIcon icon = { faUserPlus } className = { 'mr-1' } /> New User
6474 </ button >
6575 </ div >
6676 </ div >
77+ { editSubuser &&
78+ < CSSTransition timeout = { 250 } classNames = { 'fade' } appear = { true } in = { true } >
79+ < div className = { 'flex-1 ml-6' } >
80+ < h2 className = { 'text-neutral-300 mb-4' } > Edit { editSubuser . email } </ h2 >
81+ < div className = { 'border-t-4 border-primary-400 grey-box mt-0' } >
82+ < p > Edit permissions here.</ p >
83+ </ div >
84+ </ div >
85+ </ CSSTransition >
86+ }
6787 </ div >
6888 ) ;
6989} ;
0 commit comments