mirror of
https://github.com/mastodon/mastodon.git
synced 2026-10-11 16:28:26 -05:00
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import { createRoot } from 'react-dom/client';
|
|
|
|
import { Provider } from 'react-redux';
|
|
|
|
import { fetchServer } from '@/mastodon/actions/server';
|
|
import { hydrateStore } from '@/mastodon/actions/store';
|
|
import { Router } from '@/mastodon/components/router';
|
|
import { initializeEmoji } from '@/mastodon/features/emoji';
|
|
import { Compose } from '@/mastodon/features/standalone/compose';
|
|
import { initialState } from '@/mastodon/initial_state';
|
|
import { IntlProvider } from '@/mastodon/locales';
|
|
import { loadPolyfills } from '@/mastodon/polyfills';
|
|
import ready from '@/mastodon/ready';
|
|
import { store } from '@/mastodon/store';
|
|
|
|
async function loaded() {
|
|
const mountNode = document.getElementById('mastodon-compose');
|
|
|
|
if (!mountNode) {
|
|
return;
|
|
}
|
|
|
|
if (initialState) {
|
|
store.dispatch(hydrateStore(initialState));
|
|
}
|
|
|
|
await store.dispatch(fetchServer());
|
|
await initializeEmoji();
|
|
|
|
const root = createRoot(mountNode);
|
|
|
|
root.render(
|
|
<IntlProvider>
|
|
<Provider store={store}>
|
|
<Router>
|
|
<Compose />
|
|
</Router>
|
|
</Provider>
|
|
</IntlProvider>,
|
|
);
|
|
}
|
|
|
|
function main() {
|
|
ready(loaded).catch((error: unknown) => {
|
|
console.error(error);
|
|
});
|
|
}
|
|
|
|
loadPolyfills()
|
|
.then(main)
|
|
.catch((error: unknown) => {
|
|
console.error(error);
|
|
});
|