Simple package for setting and displaying in-app notifications for Laravel
MIT License
Required PHP >=8.2
composer require jcergolj/in-app-notifications-for-laravel
If you wish to modify the component view
php artisan vendor:publish --provider="Jcergolj\InAppNotifications\InAppNotificationsServiceProvider"
<x-in-app-notifications::notification />
@yield('scripts')
<?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');
}
}
<?php
InAppNotification::success($message);
InAppNotification::error($message);
InAppNotification::warning($message);
InAppNotification::info($message);
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
});
}
If you wish so you can extend InAppNotitication
class utilising Macroable trait.
// AppServiceProvider.php
InAppNotitication::macro('customMethod', function () {
});
// e.g. inside controller
InAppNotification::customMethod();
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);