2023-02-14 10:13:40 +01:00
|
|
|
import { RemixBrowser } from '@remix-run/react';
|
|
|
|
|
import { startTransition, StrictMode } from 'react';
|
|
|
|
|
import { hydrateRoot } from 'react-dom/client';
|
|
|
|
|
import { ClientProvider } from '@mantine/remix';
|
2023-02-11 03:14:14 +01:00
|
|
|
|
|
|
|
|
function hydrate() {
|
|
|
|
|
startTransition(() => {
|
|
|
|
|
hydrateRoot(
|
|
|
|
|
document,
|
|
|
|
|
<StrictMode>
|
2023-02-14 10:13:40 +01:00
|
|
|
<ClientProvider>
|
|
|
|
|
<RemixBrowser />
|
|
|
|
|
</ClientProvider>
|
2023-02-11 03:14:14 +01:00
|
|
|
</StrictMode>
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-14 10:13:40 +01:00
|
|
|
if (typeof requestIdleCallback === 'function') {
|
2023-02-11 03:14:14 +01:00
|
|
|
requestIdleCallback(hydrate);
|
|
|
|
|
} else {
|
|
|
|
|
// Safari doesn't support requestIdleCallback
|
|
|
|
|
// https://caniuse.com/requestidlecallback
|
|
|
|
|
setTimeout(hydrate, 1);
|
|
|
|
|
}
|