UNPKG

immers

Version:

ActivityPub server for the metaverse

48 lines (45 loc) 1.32 kB
import React, { useEffect, useState } from 'react' import ReactDOM from 'react-dom' import { Router } from '@reach/router' import Profile from './Profile' import { IntlProvider } from 'react-intl' import ServerDataContext from './ServerDataContext' const mountNode = document.getElementById('app') ReactDOM.render(<Root />, mountNode) function Root () { const [dataContext, setDataContext] = useState(window._serverData) useEffect(() => { if (!dataContext.loggedInUser) { return } const newData = Object.assign({}, dataContext) window.fetch('/auth/token', { method: 'POST' }) .then(res => res.text()) .then(token => { newData.token = token return window.fetch('/auth/me', { headers: { Accept: 'application/activity+json', Authorization: `Bearer ${token}` } }) }) .then(res => res.json()) .then(actor => { newData.actor = actor setDataContext(newData) }) .catch(err => console.error(err.message)) }, []) return ( <IntlProvider locale='en' defaultLocale='en'> <ServerDataContext.Provider value={dataContext}> <Router> <Profile path='/u/:actor/*' /> </Router> </ServerDataContext.Provider> </IntlProvider> ) }