import { useCallback, useEffect, useState } from 'react' import { api, Me, Unauthenticated } from './api' import Login from './Login' import Shell from './Shell' export default function App() { const [me, setMe] = useState(undefined) const refresh = useCallback(async () => { try { setMe(await api.me()) } catch (e) { if (e instanceof Unauthenticated) setMe(null) } }, []) useEffect(() => { refresh() }, [refresh]) useEffect(() => { if (!me) return const t = setInterval(refresh, 30000) return () => clearInterval(t) }, [me, refresh]) if (me === undefined) return
…
if (me === null) return return setMe(null)} /> }