Button with Loading Indicator

Tailwind CSS New Livewire

Demo

This is a pro component. Get Livewiredemos pro access to view / download the component code.

Component Class


<?php

namespace App\Http\Livewire;

use Livewire\Component;

class ButtonWithLoadingSpinner extends Component
{
    public function render()
    {
        return view('livewire.button-with-loading-spinner');
    }

    public function submit()
    {
        sleep(3);
    }
}

Component View File


<div class="text-center">
    <button type="button" wire:click="submit"
        class="inline-flex items-center px-4 py-2 font-semibold leading-6 text-sm shadow rounded-md text-white bg-indigo-500 hover:bg-indigo-400 transition ease-in-out duration-150"
        wire:loading.class="cursor-not-allowed" wire:loading.attr="disabled">
        <svg class="animate-spin -ml-1 mr-3 h-5 w-5 text-white" xmlns="http://www.w3.org/2000/svg" fill="none"
            viewBox="0 0 24 24" wire:loading>
            <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor"
                stroke-width="4">
            </circle>
            <path class="opacity-75" fill="currentColor"
                d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z">
            </path>
        </svg>
        <span wire:loading>
            Processing...
        </span>
        <span wire:loading.remove>
            Submit
        </span>
    </button>
</div>



Usage


@livewire('button-with-loading-spinner')