Path : /var/www/html/phkaymedia/vendor/jantinnerezo/livewire-alert/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/phkaymedia/vendor/jantinnerezo/livewire-alert/README.md |
# Livewire Alert <a href="https://github.com/jantinnerezo/livewire-alert/actions"><img src="https://github.com/jantinnerezo/livewire-alert/workflows/PHPUnit/badge.svg" alt="Build Status"></a> <a href="https://packagist.org/packages/jantinnerezo/livewire-alert"><img src="https://img.shields.io/packagist/v/jantinnerezo/livewire-alert" alt="Latest Stable Version"></a> <a href="https://packagist.org/packages/jantinnerezo/livewire-alert"><img src="https://img.shields.io/packagist/dt/jantinnerezo/livewire-alert" alt="Total Downloads"></a> <a href="https://packagist.org/packages/jantinnerezo/livewire-alert"><img src="https://img.shields.io/packagist/l/jantinnerezo/livewire-alert" alt="License"></a>  This package provides a simple alert utility for your livewire components. Currently using [SweetAlert2](https://sweetalert2.github.io/) under-the-hood. You can now use SweetAlert2 without writing any custom Javascript. Looking forward to integrate other Javascript alert libraries, feel free to contribute or suggest any libraries. ## Interactive Demo Check the interactive demo here: https://livewire-alert.jantinnerezo.com ## Contribute to interactive demo Do you have any ideas in mind that you can add to the interactive demo? Fork and submit a PR here: https://github.com/jantinnerezo/livewire-alert-demo ## Installation You can install the package via composer: ```bash composer require jantinnerezo/livewire-alert ``` Next, add the scripts component to your template after the `@livewireScripts`. > SweetAlert2 script is not included by default so make sure you include it before livewire alert script. ``` html <body> @livewireScripts <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script> <x-livewire-alert::scripts /> </body> ``` You can also manually include the script by publishing `livewire-alert.js` ``` bash php artisan vendor:publish --tag=livewire-alert:assets ``` And then in your view you can include the published script instead of including inline script with `<x-livewire-alert::scripts />` component. > If you go this path, make sure to include the `<x-livewire-alert::flash />` right after the livewire-alert script if you still want the flash feature. ``` html <script src="{{ asset('vendor/livewire-alert/livewire-alert.js') }}"></script> <x-livewire-alert::flash /> ``` ## Requirements This package is meant to use with Livewire components. Make sure you are using it with Livewire projects only. - PHP 7.2 or higher - Laravel 7, 8, 9 and 10 - Livewire - SweetAlert2 ## Usage You can use livewire alert by using the `LivewireAlert` trait. ``` php use Jantinnerezo\LivewireAlert\LivewireAlert; class Index extends Component { use LivewireAlert; public function submit() { $this->alert('success', 'Basic Alert'); } } ``` Displaying different alert icons. > The default alert behaviour is a toast notification. ``` php $this->alert('success', 'Success is approaching!'); ``` ``` php $this->alert('warning', 'The world has warned you.'); ``` ``` php $this->alert('info', 'The fact is you know your name :D'); ``` ``` php $this->alert('question', 'How are you today?'); ``` Disabling toast notification alert treatment. ``` php $this->alert('info', 'This is not as toast alert', [ 'toast' => false ]); ``` ## Positioning Alert ``` php $this->alert('info', 'Centering alert', [ 'position' => 'center' ]); ``` List of the following alert positions: - top - top-start - top-end - center - center-start - center-end - bottom - bottom-start - bottom-end ## Buttons SweetAlert2 has 3 buttons that is not shown by default. To show confirm button, simply pass the `showConfirmButton` to alert configuration and set it to `true`. ``` php $this->alert('question', 'How are you today?', [ 'showConfirmButton' => true ]); ``` Change confirm button text: ``` php $this->alert('question', 'How are you today?', [ 'showConfirmButton' => true, 'confirmButtonText' => 'Good' ]); ``` Adding event when confirm button is clicked. First create a function that will be fired when confirm button is clicked: ``` php public function confirmed() { // Do something } ``` Add to it event listeners array to register it. ``` php protected $listeners = [ 'confirmed' ]; ``` Or ``` php public function getListeners() { return [ 'confirmed' ]; } ``` And then pass it to `onConfirmed` key of the alert configuration. ``` php $this->alert('question', 'How are you today?', [ 'showConfirmButton' => true, 'confirmButtonText' => 'Good', 'onConfirmed' => 'confirmed' ]); ``` You can also pass a parameter to the event to get the alert response. > Useful when you need to get the value of the input inside the alert. ``` php $this->alert('warning', 'Please enter password', [ 'showConfirmButton' => true, 'confirmButtonText' => 'Submit', 'onConfirmed' => 'confirmed', 'input' => 'password', 'inputValidator' => '(value) => new Promise((resolve) => '. ' resolve('. ' /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$^+=!*()@%&]).{8,}$/.test(value) ?'. ' undefined : "Error in password"'. ' )'. ')', 'allowOutsideClick' => false, 'timer' => null ]); ``` ``` php public function confirmed($data) { // Get input value and do anything you want to it $password = $data['value']; } ``` Just do the same thing to show `deny` and `cancel` button. Just create a function for each button and register it to event listeners. ``` php public function denied() { // Do something when denied button is clicked } ``` ``` php public function cancelled() { // Do something when cancel button is clicked } ``` ``` php public function getListeners() { return [ 'denied', 'dismissed' ]; } ``` Make sure to set `showDenyButton` and `showCancelButton` to `true`. ``` php $this->alert('warning', 'Alert with deny and cancel button', [ 'showDenyButton' => true, 'denyButtonText' => 'Deny', 'showCancelButton' => true, 'cancelButtonText' => 'Cancel', 'onDenied' => 'denied', 'onDismissed' => 'cancelled' ]); ``` Emit events to only specific component. Instead of passing the listener directly to the event, pass an array with `component` and `listeners` keys. ``` PHP 'onConfirmed' => [ 'component' => 'livewire-component', 'listener' => 'confirmed' ]; ``` Don't want to define extra button configuration every time you show alert confirmation? Use the confirm method instead. > You can always override default confirm settings just tweak the configuration. ``` php $this->confirm('Are you sure do want to leave?', [ 'onConfirmed' => 'confirmed', ]); ``` ## Flash Notification You can also use alert as a flash notification. You can pass the redirect route on the fourth parameter, redirects to `/` by default. ``` php $this->flash('success', 'Successfully submitted form', [], '/'); ``` ## Configuration Override default alert config by publishing the `livewire-alert.php` config file. ``` bash php artisan vendor:publish --tag=livewire-alert:config ``` ``` php [ 'alert' => [ 'position' => 'top-end', 'timer' => 3000, 'toast' => true, 'text' => null, 'showCancelButton' => false, 'showConfirmButton' => false ], 'confirm' => [ 'icon' => 'warning', 'position' => 'center', 'toast' => false, 'timer' => null, 'showConfirmButton' => true, 'showCancelButton' => true, 'cancelButtonText' => 'No', 'confirmButtonColor' => '#3085d6', 'cancelButtonColor' => '#d33' ] ] ``` ## Customizations You can customize alert style by passing your custom classes, works perfectly with [TailwindCSS](https://tailwindcss.com/) ``` php [ 'customClass' => [ 'container' => '', 'popup' => '', 'header' => '', 'title' => '', 'closeButton' => '', 'icon' => '', 'image' => '', 'content' => '', 'htmlContainer' => '', 'input' => '', 'inputLabel' => '', 'validationMessage' => '', 'actions' => '', 'confirmButton' => '', 'denyButton' => '', 'cancelButton' => '', 'loader' => '', 'footer' => '' ] ]; ``` For more details about customization and configuration please check [SweetAlert2](https://sweetalert2.github.io/#configuration/) ## Contributors <a href="https://github.com/jantinnerezo/livewire-alert/graphs/contributors"> <img src="https://contrib.rocks/image?repo=jantinnerezo/livewire-alert" width="300" /> </a> ## Changelog Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently. ## Contributing Please see [CONTRIBUTING](CONTRIBUTING.md) for details. ## Security If you discover any security related issues, please email erezojantinn@gmail.com instead of using the issue tracker. ## License The MIT License (MIT). Please see [License File](LICENSE.md) for more information.