Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

ufodisko's avatar

Progress bar is not showing

The progress bar/spinner is not showing in my Jetstream app (inertia/vue).

I'm not using Tailwind css though, I've converted it to Bootstrap and I'm 100% certain it was working at first.

I'm not sure what's causing this.

This is in app.js

import('./bootstrap');
import {resolvePageComponent} from "laravel-vite-plugin/inertia-helpers";

// Import modules...
import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/inertia-vue3';
import { InertiaProgress } from '@inertiajs/progress';

const appName = window.document.getElementsByTagName('title')[0]?.innerText || 'Laravel';

createInertiaApp({
    title: (title) => `${title} - ${appName}`,
    //
    resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob("./Pages/**/*.vue")),
    setup({ el, app, props, plugin }) {
        return createApp({ render: () => h(app, props) })
            .use(plugin)
            .mixin({ methods: { route } })
            .mount(el);
    },
});

InertiaProgress.init({ 
    color: '#ff0', 
    includeCSS: true,
    showSpinner: false
});

And this is in vite.config.js

resolve: {
    extensions: ['.ts', '.tsx', '.js']
},

I also just noticed that I have webpack.config.js and webpack.mix.js in the root directory, not sure if those files are supposed to be there.

0 likes
7 replies
kayedspace's avatar

try passing the progress parameters in createInertiaApp function

createInertiaApp({
  progress: {
 		color: '#ff0', 
        includeCSS: false,
        showSpinner: false,
    },
    title: (title) => `${title} - ${appName}`,
    //
    resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob("./Pages/**/*.vue")),
    setup({ el, app, props, plugin }) {
        return createApp({ render: () => h(app, props) })
            .use(plugin)
            .mixin({ methods: { route } })
            .mount(el);
    },
});

aslo you could inspect your page and this html should be appended to your html code while routing to any inertia route

<div id="nprogress"
     style="transition: all 200ms linear 0s; opacity: 0;">
    <div class="bar" role="bar"
         style="transform: translate3d(0%, 0px, 0px); transition: all 200ms ease 0s;">
        <div class="peg"></div>
    </div>
    <div class="spinner" role="spinner">
        <div class="spinner-icon"></div>
    </div>
</div>

if appended the issue should be due to the css or something

ufodisko's avatar

@3liusef The first solution didn't do anything and I can't see the html tags for noprogress

ufodisko's avatar

@3liusef I'm using the Link component line so

<Link :href="route('profile.show')" class="dropdown-item">Profile</Link>

kayedspace's avatar

For the nprogress It's appended to your html as soon as you you click on the Link component and after fetching it disappears again Try inspecting at the moment of clicking the component

Please or to participate in this conversation.