Beautiful alert component made with VueJs for Laravel app.
From the command line, run:
composer require devmi/flashy
If you're using laravel >5.5 skip to the next step.
Open config/app.php and within the providers array:
Devmi\Flashy\FlashyServiceProvider::class
Now you must publish the vue compenent and register it in order to use it.
php artisan vendor:publish --tag=devmi
open resources/assets/js/app.js
and register the component
Vue.component('flashy', require('./vendor/devmi/Flashy.vue'));
you find the file under resources/assets/js/vendor/devmi/Flashy.vue
.
You can add the flashy component anywhere in your blade files but preferably
it should be added to your app.blade.php
file
<flashy data-message="{{ flashy()->message() }}"></flashy>
Now in your controller before any redirect you may do
flashy()->push('This message will be flashed.');
The default color is bootstrap alert success.
You may also change the default theme color, display delay, add title, stop animation
app.blade.php
<flashy
title="{{ flashy()->title() }}"
message="{{ flashy()->message() }}"
type="{{ flashy()->type() }}"
delay="3000"
animated="true"
>
</flashy>
And
flashy()->push(message, type, title);
Title:
String
(optional)
Message:
String
Type:
string
eg:['primary', 'success', 'danger', 'warning', 'secondary', 'black', 'light']
(optional) | Default:success
Delay:
Integer
(optional) | Default:3000
Animated:
Boolean
(optional) | Default:true
If you use Ajax requests, you should add to resources/assets/js/app.js
the following code
window.events = new Vue();
window.flashy = (message, type, title) => window.events.$emit('flashy', message, type, title)
then simply you can call flashy()
global function from any .vue
file and pass you arguments.
If you find any bug or problem please open an issue or create a pull request, Thanks!.