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')