Inject PWA manifest and service worker registration into Filament head section

This commit is contained in:
dhanabalan
2025-11-04 15:07:38 +05:30
parent 98b379919b
commit 420ab6c27b

View File

@@ -3,6 +3,7 @@
namespace App\Providers; namespace App\Providers;
use App\Models\User; use App\Models\User;
use Filament\Facades\FilamentView;
use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use App\Policies\RolePolicy; use App\Policies\RolePolicy;
@@ -11,8 +12,10 @@ use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission; use Spatie\Permission\Models\Permission;
use Filament\Support\Facades\FilamentAsset; use Filament\Support\Facades\FilamentAsset;
use Filament\Support\Assets\Js; use Filament\Support\Assets\Js;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Vite; use Illuminate\Support\Facades\Vite;
// use Doctrine\DBAL\Types\Type; // use Doctrine\DBAL\Types\Type;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
@@ -25,6 +28,7 @@ class AppServiceProvider extends ServiceProvider
// //
} }
/** /**
* Bootstrap any application services. * Bootstrap any application services.
*/ */
@@ -33,6 +37,9 @@ class AppServiceProvider extends ServiceProvider
// Gate::before(function ($user, $ability) { // Gate::before(function ($user, $ability) {
// return $user->hasRole('Super Admin') ? true : null; // return $user->hasRole('Super Admin') ? true : null;
// }); // });
// View::composer('filament-panels::pages.auth.login', function ($view) {
// $view->with('forgotPasswordUrl', route('password.request'));
// });
Gate::before(function (User $user, string $ability) { Gate::before(function (User $user, string $ability) {
return $user->isSuperAdmin() ? true: null; return $user->isSuperAdmin() ? true: null;
@@ -43,7 +50,13 @@ class AppServiceProvider extends ServiceProvider
// ]); // ]);
FilamentAsset::register([ FilamentAsset::register([
Js::make('chart-js-plugins', Vite::asset('resources/js/filament-chart-js-plugins.js'))->module(), Js::make('chart-js-plugins', Vite::asset('resources/js/filament-chart-js-plugins.js'))->module(),
]); ]);
// if (env('APP_MODE') === 'admin') {
// FilamentAsset::register([
// Js::make('chart-js-plugins', Vite::asset('resources/js/filament-chart-js-plugins.js'))->module(),
// ]);
// }
// URL::forceScheme('https'); // URL::forceScheme('https');
@@ -56,5 +69,29 @@ class AppServiceProvider extends ServiceProvider
ini_set('max_execution_time', 300); // 300 seconds = 5 minutes ini_set('max_execution_time', 300); // 300 seconds = 5 minutes
ini_set('memory_limit', '512M'); // 512MB ini_set('memory_limit', '512M'); // 512MB
/**
* Inject PWA manifest + service worker
* into Filament head section
*/
\Filament\Support\Facades\FilamentView::registerRenderHook(
'head.end',
fn() => <<<HTML
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#007bff">
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js')
.then(function(reg) {
console.log('✅ Service Worker registered:', reg.scope);
}).catch(function(err) {
console.error('❌ Service Worker registration failed:', err);
});
}
</script>
HTML
);
} }
} }