Remix is one of latest web framework which helps build great web experiences embracing the fundamentals.
Remix uses Reactjs to hydrate pages on client side and all sites rendered sites have issue showing the loading progress when navigating between pages. This can be fixed by adding nprogress to app
1. Install nprogress #
npm i nprogress
if using typescript also do npm i -D @types/nprogress
2. Add import statements #
import Nprogress from 'nprogress';
import nprogressStyles from 'nprogress/nprogress.css';
3. Apply added stylesheets #
export const links: LinksFunction = () => [
{ rel: 'stylesheet', href: nprogressStyles }
];
4. In root.jsx
or root.tsx
use useTransition
hook which tells the state of page #
export default function App() {
...
const transition = useTransition();
useEffect(() => {
if (transition.state === 'loading' || transition.state === 'submitting') {
Nprogress.start();
} else {
Nprogress.done();
}
}, [transition.state]);
...
}
Now progress har should show up when navigating between pages
Since you've made it this far, sharing this article on your favorite social media network would be highly appreciated ! For feedback, please ping me on Twitter.
Published