coolify/resources/views/components/inputs/button.blade.php

35 lines
1.5 KiB
PHP
Raw Normal View History

2023-05-03 14:09:10 +02:00
@props([
2023-05-03 15:02:21 +02:00
'isWarning' => null,
2023-05-14 14:43:49 +02:00
'isBold' => false,
2023-05-09 11:33:50 +02:00
'disabled' => null,
2023-05-14 14:43:49 +02:00
'defaultClass' => 'text-white hover:bg-coollabs h-10 rounded transition-colors',
'defaultWarningClass' => 'text-white bg-red-500 hover:bg-red-600 h-10 rounded',
'disabledClass' => 'text-neutral-400 h-10 rounded',
'loadingClass' => 'text-black bg-green-500 h-10 rounded',
2023-05-03 14:09:10 +02:00
'confirm' => null,
'confirmAction' => null,
])
2023-05-03 15:02:21 +02:00
<button {{ $attributes }} @class([
2023-05-14 14:43:49 +02:00
$defaultClass => !$confirm && !$isWarning && !$disabled && !$isBold,
2023-05-09 11:33:50 +02:00
$defaultWarningClass => ($confirm || $isWarning) && !$disabled,
$disabledClass => $disabled,
2023-05-14 14:43:49 +02:00
$isBold => $isBold
? 'bg-coollabs text-white hover:bg-coollabs-100 h-10 rounded transition-colors'
: '',
2023-05-09 11:33:50 +02:00
]) @if ($attributes->whereStartsWith('wire:click') && !$disabled)
2023-05-03 15:29:14 +02:00
wire:target="{{ explode('(', $attributes->whereStartsWith('wire:click')->first())[0] }}"
wire:loading.delay.class="{{ $loadingClass }}" wire:loading.delay.attr="disabled"
2023-05-03 15:02:21 +02:00
wire:loading.delay.class.remove="{{ $defaultClass }} {{ $attributes->whereStartsWith('class')->first() }}"
@endif
2023-05-09 11:33:50 +02:00
@if ($disabled !== null)
disabled title="{{ $disabled }}"
@endif
2023-05-03 15:02:21 +02:00
@isset($confirm)
2023-05-04 15:45:53 +02:00
x-on:click="toggleConfirmModal('{{ $confirm }}', '{{ explode('(', $confirmAction)[0] }}')"
2023-05-03 15:02:21 +02:00
@endisset
@isset($confirmAction)
2023-05-04 15:45:53 +02:00
x-on:{{ explode('(', $confirmAction)[0] }}.window="$wire.{{ explode('(', $confirmAction)[0] }}"
2023-05-03 15:02:21 +02:00
@endisset>
2023-05-03 14:09:10 +02:00
{{ $slot }}
</button>