Skip to content
Snippets Groups Projects
App.tsx 2.20 KiB
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