blob: da6250a66129469bea4343c0eceb8678f51c8601 [file] [log] [blame]
simond47ef9e2022-09-28 22:24:28 -04001import CircularProgress from '@mui/material/CircularProgress';
simon07b4eb02022-09-29 17:50:26 -04002import Container from '@mui/material/Container';
3
simond47ef9e2022-09-28 22:24:28 -04004import Account from '../../../model/Account';
simon07b4eb02022-09-29 17:50:26 -04005import authManager from '../AuthManager';
6import AccountPreferences from '../components/AccountPreferences';
7import Header from '../components/Header';
Adrien Béraud4e287b92021-04-24 16:15:56 -04008
9const ServerOverview = (props) => {
simond47ef9e2022-09-28 22:24:28 -040010 this.accountId = props.accountId || props.match.params.accountId;
Adrien Béraud4e287b92021-04-24 16:15:56 -040011
Adrien Béraudab519ff2022-05-03 15:34:48 -040012 useEffect(() => {
simond47ef9e2022-09-28 22:24:28 -040013 const controller = new AbortController();
14 authManager
15 .fetch(`/api/serverConfig`, { signal: controller.signal })
16 .then((res) => res.json())
17 .then((result) => {
18 console.log(result);
19 setState({ loaded: true, account: Account.from(result) });
20 })
21 .catch((e) => console.log(e));
22 // return () => controller.abort() // crash on React18
23 }, [accountId]);
Adrien Béraudab519ff2022-05-03 15:34:48 -040024
Adrien Béraud4e287b92021-04-24 16:15:56 -040025 return (
simond47ef9e2022-09-28 22:24:28 -040026 <Container maxWidth="sm" className="app">
Adrien Béraud4e287b92021-04-24 16:15:56 -040027 <Header />
28 {this.state.loaded ? <AccountPreferences account={this.state.account} /> : <CircularProgress />}
29 </Container>
simond47ef9e2022-09-28 22:24:28 -040030 );
31};
Adrien Béraud4e287b92021-04-24 16:15:56 -040032
simond47ef9e2022-09-28 22:24:28 -040033export default ServerOverview;