work-timer/app/entry.client.tsx

30 lines
733 B
TypeScript
Raw Normal View History

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(() => {
2023-04-05 19:50:52 +02:00
document.querySelectorAll('html > script').forEach((s) => {
s.parentNode!.removeChild(s);
});
2023-02-11 03:14:14 +01:00
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);
}