jcergolj / in-app-notifications-for-laravel
Simple package for setting and displaying in-app notifications for Laravel
Installs: 2 536
Dependents: 0
Suggesters: 0
Security: 0
Stars: 14
Watchers: 1
Forks: 0
Open Issues: 0
Requires (Dev)
- laravel/pint: ^1.9
README
Key features
- notification is closed automatically after 5s,
- you can change the timeout,
- styled wiht tailwind css by default,
- you can modify the component and use different framework or none at all
Installation
Requirements
Required PHP >=8.2
Installing package
composer require jcergolj/in-app-notifications-for-laravel
Publishing config file
If you wish to modify the component view
php artisan vendor:publish --provider="Jcergolj\InAppNotifications\InAppNotificationsServiceProvider"
Usage
Add components to your layouts/app.blade.php file
<x-in-app-notifications::notification /> @yield('scripts')
Set notification inside controller
<?php namespace App\Http\Controllers; use Jcergolj\InAppNotifications\Facades\InAppNotification; class UserController extends Controller { public function store(Request $request) { InAppNotification::success('User was successfully created.'); return view('mailboxes.index'); } }
Avaiable methods
<?php InAppNotification::success($message); InAppNotification::error($message); InAppNotification::warning($message); InAppNotification::info($message);
Change the default timeout
Inside register's AppServiceProvider.php file
<?php public function register(): void { $this->app->bind('in-app-notification', function () { return new Jcergolj\InAppNotifications\InAppNotification(10000); // 10 seconds }); }
It has use Illuminate\Support\Traits\Macroable;
If you wish so you can extend InAppNotitication
class utilising Macroable trait.
// AppServiceProvider.php InAppNotitication::macro('customMethod', function () { }); // e.g. inside controller InAppNotification::customMethod();
Testing
Package comes with few handy assertions:
// add this for adding testable macro InAppNotification::fake(); InAppNotification::assertSet() InAppNotification::assertSet('Assert against this text.'); InAppNotification::assertSuccess() InAppNotification::assertSuccess('Success'); InAppNotification::assertError(); InAppNotification::assertError('Error'); InAppNotification::assertInfo(); InAppNotification::assertInfo('Info'); InAppNotification::assertWarning(); InAppNotification::assertWarning('Warning'); InAppNotification::assertTimeout(10000);