Improve spinners between loads

This commit is contained in:
David Bomba 2024-07-02 12:35:28 +10:00
parent 4a3f8278ea
commit e1be33314e
2 changed files with 19 additions and 15 deletions

View File

@ -52,8 +52,10 @@ class PaymentMethod extends Component
if(count($this->methods) == 1) { if(count($this->methods) == 1) {
$this->dispatch('payment-method-selected', company_gateway_id: $this->methods[0]['company_gateway_id'], gateway_type_id: $this->methods[0]['gateway_type_id'], amount: $this->invoice->balance); $this->dispatch('payment-method-selected', company_gateway_id: $this->methods[0]['company_gateway_id'], gateway_type_id: $this->methods[0]['gateway_type_id'], amount: $this->invoice->balance);
} }
else {
$this->isLoading = false; $this->isLoading = false;
$this->dispatch('loadingCompleted');
}
} }
@ -61,9 +63,7 @@ class PaymentMethod extends Component
public function render() public function render()
{ {
//If there is only one payment method, skip display and push straight to the form!! //If there is only one payment method, skip display and push straight to the form!!
return render('components.livewire.payment_method-flow2', ['methods' => $this->methods, 'amount' => $this->invoice->balance]); return render('components.livewire.payment_method-flow2', ['methods' => $this->methods, 'amount' => $this->invoice->balance]);
} }
} }

View File

@ -1,4 +1,4 @@
<div class="flex flex-col space-y-4 p-4" x-data="{ isLoading: true }"> <div class="flex flex-col space-y-4 p-4" x-data="{ isLoading: @entangle('isLoading') }">
<div x-show="isLoading" class="flex items-center justify-center min-h-screen"> <div x-show="isLoading" class="flex items-center justify-center min-h-screen">
<svg class="animate-spin h-10 w-10 text-gray-500" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> <svg class="animate-spin h-10 w-10 text-gray-500" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
@ -25,6 +25,10 @@
@script @script
<script> <script>
Livewire.on('loadingCompleted', () => {
isLoading = false;
});
const buttons = document.querySelectorAll('.payment-method'); const buttons = document.querySelectorAll('.payment-method');
buttons.forEach(button => { buttons.forEach(button => {