Criando uma caixa de diálogo de confirmação com Livewire: um guia passo a passo

Nkenganyi Clovis Free Resources Dec 26, 2023

Livewire é um framework full-stack para Laravel que simplifica a criação de interfaces dinâmicas sem sair do Laravel.

A capacidade de construir diálogos de confirmação com pouco ou nenhum código e sem JavaScript é um dos recursos do Livewire.

Vou orientá-lo no processo de criação de uma caixa de diálogo de confirmação usando Livewire em algumas etapas simples nesta postagem do blog usando a nova diretiva HTML 'wire:confirm' que torna mais fácil do que nunca adicionar uma caixa de diálogo de confirmação antes de executar uma tarefa importante ou ação perigosa.

Instale o Livewire

Para usar o Livewire, você precisa instalá-lo em seu projeto Laravel. Você pode fazer isso executando o seguinte comando em seu terminal:

composer require livewire/livewire

Isso instalará o Livewire como uma dependência e publicará seus ativos e arquivos de configuração.

Create Amazing Websites

Com o melhor criador de páginas gratuito Elementor

Comece agora

Opcionalmente, você também pode executar o seguinte comando " php artisan livewire:publish --config " para publicar o arquivo de configuração do Livewire, o que permite personalizar algumas das configurações.

Usar o novo wire:confirm' torna muito fácil adicionar a caixa de diálogo de confirmação ao seu aplicativo.

Você pode usar wire:confirm para uma confirmação direta que possui um botão "Cancelar" e "OK", juntamente com um evento como wire:click:

<div>
    <h2>Danger zone</h2>
    <button
        type="button"
        wire:click="delete"
        wire:confirm="Are you sure you want to delete this project?"
    >
        Delete this project
    </button>
</div>

Livewire lançará um pop-up de confirmação do navegador nativo quando você clicar no botão.

As coisas ficam um pouco mais interessantes se você pedir ao usuário que insira algo para verificar se deseja fazer algo catastrófico de propósito.

<div>
    <h2>Danger zone</h2>
    {{-- ... --}}
    <button
        type="button"
        wire:click="delete"
        wire:confirm.prompt="Are you sure?\n\nType DELETE to confirm|DELETE"
    >
        Delete this project
    </button>
</div>

O '|DELETE' permite que o Livewire saiba o prompt esperado para corresponder.

Quando o botão é clicado, um modal ' prompt() ' aparecerá e pedirá ao usuário para escrever "DELETE". Caso a entrada do usuário corresponda, o método ' delete() ' do componente Livewire será chamado.

A palavra ou frase de confirmação pode ser alterada para refletir um valor dinâmico no componente. Por exemplo, você pode exigir que o usuário forneça o nome do projeto para verificar:

Concluí que colocar tudo em maiúscula seria o mais fácil porque há uma ressalva: a correspondência do texto diferencia maiúsculas de minúsculas. Você deve usar entidades HTML no atributo ' wire:confirm ' se desejar usar aspas como estou demonstrando.

<div>
    <h2>Danger zone</h2>
    {{-- ... --}}
    <button
        type="button"
        wire:click="delete"
        wire:confirm.prompt="Are you sure?\n\nType &quot;{{ str($project_name)->upper() }}&quot; to confirm|{{ str($project_name)->upper() }}"
    >
        Delete this project
    </button>
</div>

Por que você deve usar a diretiva HTML 'wire:confirm' da Livewire?

Se você está procurando uma maneira simples e eficaz de adicionar uma caixa de diálogo de confirmação antes de executar uma ação importante ou perigosa em sua página da web, considere usar a diretiva HTML wire:confirm .

Esta diretiva faz parte do framework Livewire, que é uma biblioteca que facilita a construção de aplicações web dinâmicas e interativas usando Laravel.

A diretiva wire:confirm permite especificar uma mensagem que será exibida em um modal de navegador nativo quando o usuário clicar em um elemento que possui uma ação Livewire anexada a ele.

Por exemplo, se você tiver um botão que exclui um registro do banco de dados, você pode adicionar wire:confirm="Tem certeza que deseja excluir isto?" ao elemento do botão, e o usuário verá uma caixa de diálogo solicitando que confirme sua ação antes que a ação Livewire seja acionada.

Dessa forma, você pode evitar que ações acidentais ou maliciosas aconteçam e fornecer mais contexto e clareza ao usuário sobre o que ele está fazendo.

A diretiva wire:confirm tem diversas vantagens sobre outros métodos de adição de caixas de diálogo de confirmação, como o uso de JavaScript ou componentes personalizados.

Primeiro, ele usa o modal do navegador nativo ' Window.confirm ', que é simples e consistente em diferentes navegadores e plataformas.

Você não precisa se preocupar com problemas de estilo, compatibilidade ou desempenho.

Em segundo lugar, é muito fácil de usar e requer um mínimo de código.

Você só precisa adicionar a diretiva e a mensagem ao elemento e o Livewire cuidará do resto.

Terceiro, ele se integra perfeitamente à estrutura Livewire, o que significa que você pode usá-lo com qualquer ação Livewire, como wire:click , wire:submit ou wire:model .

Conclusão

A diretiva wire:confirm é uma ótima ferramenta para adicionar caixas de diálogo de confirmação à sua página web. É simples, eficaz e conveniente de usar.

Pode ajudá-lo a melhorar a experiência do usuário e a segurança do seu aplicativo da web.

Se quiser saber mais sobre a diretiva wire:confirm e a estrutura Livewire, você pode visitar a documentação oficial ou o repositório GitHub.

Espero que esta nota tenha convencido você a tentar. 😊

Divi WordPress Theme