-
Sivert Kronen Hatteberg authored
Add a simple loading component and spinner animation See merge request !52
Sivert Kronen Hatteberg authoredAdd a simple loading component and spinner animation See merge request !52
import React, { useState } from 'react'
import { useTranslation } from 'react-i18next'
import './App.css'
import { Button } from 'components/button'
import Loading from 'components/loading'
import { appTimezone, appVersion, appTheme } from './appConfig'
import Link from './components/link'
const App = () => {
const [apiHealth, setApiHealth] = useState('not yet')
const [didContactApi, setDidContactApi] = useState(false)
const { t, i18n } = useTranslation(['common', 'footer'])
if (!didContactApi) {
setDidContactApi(true)
fetch('http://localhost:3000/api/health/')
.then((res) => res.text())
.then((result) => {
if (result === 'OK') {
setApiHealth('yes')
} else {
setApiHealth(result)
}
})
.catch((error) => {
setApiHealth('error')
console.log(error)
})
}
return (
<div className="App">
<header className="App-header">
<Button href="https://example.com" target="_blank" rel="noopener">
Knapp
</Button>
<Button href="https://example.com" target="_blank" rel="noopener">
Rosa knapp
</Button>
<p>{t('common:test')}</p>
<p>{t('common:nested.test')}</p>
<p>{t('footer:footerInfo')}</p>
<Button
onClick={() =>
i18n.language === 'en'
? i18n.changeLanguage('nb')
: i18n.changeLanguage('en')
}
>
{t('common:language.change', {
lang: i18n.language === 'en' ? 'Norsk' : 'Engelsk',
})}
</Button>
<Loading />
<p>
Version {appVersion}
<br />
Timezone {appTimezone}
<br />
Theme {appTheme}
<br />
API reachable? {apiHealth}
</p>
<Link to='test@example.org' mail={true}>Mail link</Link>
<Link to='test4' external={false} underline={true} noExternalIcon={true}>Internal link</Link>
<Link to='test6' external={true} underline={false} noUnderline={true}>External link</Link>
<Link to='test5' external={false} noUnderline={true}>Another internal link</Link>
</header>
</div>
)
}
export default App