<script>
    document.addEventListener('alpine:init', () => {
        Alpine.data('confirmModal', () => ({
            open: false,
            confirmAction: null,
            message: 'Are you sure?',
            toggleConfirmModal(customMessage, confirmAction) {
                this.confirmAction = confirmAction
                this.message = customMessage
                this.open = !this.open
            },
            confirmed() {
                this.open = false
                this.$dispatch(this.confirmAction)
            }
        }))
    })
</script>
<div x-cloak x-show="open" x-transition.opacity class="fixed inset-0 bg-slate-900/75"></div>
<div x-cloak x-show="open" x-transition class="fixed inset-0 z-50 flex pt-10">
    <div @click.away="open = false" class="w-screen h-20 max-w-xl mx-auto bg-black rounded-lg">
        <div class="flex flex-col items-center justify-center h-full">
            <div class="pb-5 text-white" x-text="message"></div>
            <div>
                <x-forms.button x-on:click='confirmed()'>Confirm</x-forms.button>
                <x-forms.button x-on:click="open = false">Cancel</x-forms.button>
            </div>
        </div>
    </div>
</div>