blob: df0ee49b6c3c1cc28593a54a916b9ab994bb07a6 [file] [log] [blame]
Adrien Béraudab519ff2022-05-03 15:34:48 -04001import React from 'react'
Adrien Béraud4e287b92021-04-24 16:15:56 -04002import Header from '../components/Header'
3import AccountPreferences from '../components/AccountPreferences'
Adrien Béraudab519ff2022-05-03 15:34:48 -04004import Container from '@mui/material/Container'
5import CircularProgress from '@mui/material/CircularProgress'
Adrien Béraud4e287b92021-04-24 16:15:56 -04006import authManager from '../AuthManager'
7import Account from '../../../model/Account'
8
9const ServerOverview = (props) => {
10
Adrien Béraudab519ff2022-05-03 15:34:48 -040011 this.accountId = props.accountId || props.match.params.accountId
Adrien Béraud4e287b92021-04-24 16:15:56 -040012
Adrien Béraudab519ff2022-05-03 15:34:48 -040013 useEffect(() => {
14 const controller = new AbortController()
15 authManager.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 }).catch(e => console.log(e))
idillon28996962022-09-06 17:49:41 -040021 // return () => controller.abort() // crash on React18
Adrien Béraudab519ff2022-05-03 15:34:48 -040022 }, [accountId])
23
Adrien Béraud4e287b92021-04-24 16:15:56 -040024 return (
25 <Container maxWidth="sm" className="app" >
26 <Header />
27 {this.state.loaded ? <AccountPreferences account={this.state.account} /> : <CircularProgress />}
28 </Container>
29 )
30}
31
Adrien Béraudab519ff2022-05-03 15:34:48 -040032export default ServerOverview