2023-05-03 12:09:10 +00:00
|
|
|
@props([
|
2023-05-03 13:02:21 +00:00
|
|
|
'isWarning' => null,
|
2023-05-04 08:45:09 +00:00
|
|
|
'defaultClass' => 'text-white bg-neutral-800 hover:bg-violet-600 w-28',
|
|
|
|
'defaultWarningClass' => 'text-white bg-red-500 hover:bg-red-600 w-28',
|
2023-05-03 13:29:14 +00:00
|
|
|
'loadingClass' => 'text-black bg-green-500',
|
2023-05-03 12:09:10 +00:00
|
|
|
'confirm' => null,
|
|
|
|
'confirmAction' => null,
|
|
|
|
])
|
2023-05-03 13:02:21 +00:00
|
|
|
<button {{ $attributes }} @class([
|
|
|
|
$defaultClass => !$confirm && !$isWarning,
|
|
|
|
$defaultWarningClass => $confirm || $isWarning,
|
2023-05-03 18:47:24 +00:00
|
|
|
]) @if ($attributes->whereStartsWith('wire:click'))
|
2023-05-03 13:29:14 +00:00
|
|
|
wire:target="{{ explode('(', $attributes->whereStartsWith('wire:click')->first())[0] }}"
|
|
|
|
wire:loading.delay.class="{{ $loadingClass }}" wire:loading.delay.attr="disabled"
|
2023-05-03 13:02:21 +00:00
|
|
|
wire:loading.delay.class.remove="{{ $defaultClass }} {{ $attributes->whereStartsWith('class')->first() }}"
|
|
|
|
@endif
|
|
|
|
@isset($confirm)
|
2023-05-04 13:45:53 +00:00
|
|
|
x-on:click="toggleConfirmModal('{{ $confirm }}', '{{ explode('(', $confirmAction)[0] }}')"
|
2023-05-03 13:02:21 +00:00
|
|
|
@endisset
|
|
|
|
@isset($confirmAction)
|
2023-05-04 13:45:53 +00:00
|
|
|
x-on:{{ explode('(', $confirmAction)[0] }}.window="$wire.{{ explode('(', $confirmAction)[0] }}"
|
2023-05-03 13:02:21 +00:00
|
|
|
@endisset>
|
2023-05-03 12:09:10 +00:00
|
|
|
{{ $slot }}
|
|
|
|
</button>
|