Replace native confirm with a styled delete modal for payment QRs.
Deploy Ladill Mini / deploy (push) Successful in 26s

Bottom sheet on mobile and centered dialog on desktop, with clear consequences and the public link shown before confirming.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-06-07 20:54:27 +00:00
co-authored by Cursor
parent f52e3e882e
commit f3066e5b6c
2 changed files with 48 additions and 9 deletions
@@ -0,0 +1,38 @@
@php
$businessName = $qrCode->content()['business_name'] ?? $qrCode->label;
@endphp
<x-modal name="delete-payment-qr" maxWidth="md">
<div class="px-5 pb-6 pt-2 sm:px-6 sm:pb-6 sm:pt-4">
<div class="flex flex-col items-center text-center sm:items-start sm:text-left">
<div class="flex h-12 w-12 items-center justify-center rounded-full bg-red-100 text-red-600">
<svg class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="1.75" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"/>
</svg>
</div>
<h2 class="mt-4 text-lg font-semibold text-slate-900">Delete payment QR?</h2>
<p class="mt-2 text-sm leading-relaxed text-slate-500">
<span class="font-medium text-slate-700">{{ $qrCode->label }}</span>
@if($businessName !== $qrCode->label)
<span class="text-slate-400">· {{ $businessName }}</span>
@endif
will be removed permanently. The payment link will stop working and printed codes for this till will no longer accept payments.
</p>
<p class="mt-3 break-all rounded-xl bg-slate-50 px-3 py-2 text-xs text-slate-500">{{ $qrCode->publicUrl() }}</p>
</div>
<form method="post" action="{{ route('mini.payment-qrs.destroy', $qrCode) }}" class="mt-6 flex flex-col-reverse gap-2.5 sm:flex-row sm:justify-end">
@csrf
@method('DELETE')
<button type="button"
@click="$dispatch('close-modal', 'delete-payment-qr')"
class="rounded-xl border border-slate-200 bg-white px-4 py-2.5 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">
Cancel
</button>
<button type="submit"
class="rounded-xl bg-red-600 px-4 py-2.5 text-sm font-semibold text-white transition hover:bg-red-700">
Delete payment QR
</button>
</form>
</div>
</x-modal>
@@ -64,16 +64,17 @@
<button type="submit" class="rounded-xl bg-indigo-600 px-4 py-2 text-sm font-semibold text-white hover:bg-indigo-700">Save changes</button>
</form>
<div class="rounded-2xl border border-red-100 bg-white p-6">
<h2 class="font-semibold text-red-700">Delete payment QR</h2>
<p class="mt-1 text-sm text-slate-500">Removes this QR and its payment link. Scans will stop working. This cannot be undone.</p>
<form method="post" action="{{ route('mini.payment-qrs.destroy', $qrCode) }}" class="mt-4"
onsubmit="return confirm('Delete {{ $qrCode->label }}? The payment link will stop working.')">
@csrf
@method('DELETE')
<button type="submit" class="rounded-xl bg-red-600 px-4 py-2 text-sm font-semibold text-white hover:bg-red-700">Delete payment QR</button>
</form>
<div class="rounded-2xl border border-red-100 bg-red-50/40 p-6">
<h2 class="font-semibold text-red-700">Danger zone</h2>
<p class="mt-1 text-sm text-slate-500">Remove this payment QR and deactivate its link.</p>
<button type="button"
@click="$dispatch('open-modal', 'delete-payment-qr')"
class="mt-4 rounded-xl border border-red-200 bg-white px-4 py-2 text-sm font-semibold text-red-700 transition hover:bg-red-50">
Delete payment QR
</button>
</div>
@include('mini.payment-qrs.partials.delete-modal', ['qrCode' => $qrCode])
</div>
</div>
</div>