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;
use App\Models\User;
use Filament\Facades\FilamentView;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider;
use App\Policies\RolePolicy;
@@ -11,8 +12,10 @@ use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use Filament\Support\Facades\FilamentAsset;
use Filament\Support\Assets\Js;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Vite;
// use Doctrine\DBAL\Types\Type;
class AppServiceProvider extends ServiceProvider
@@ -25,6 +28,7 @@ class AppServiceProvider extends ServiceProvider
//
}
/**
* Bootstrap any application services.
*/
@@ -33,6 +37,9 @@ class AppServiceProvider extends ServiceProvider
// Gate::before(function ($user, $ability) {
// 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) {
return $user->isSuperAdmin() ? true: null;
@@ -44,6 +51,12 @@ class AppServiceProvider extends ServiceProvider
FilamentAsset::register([
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');
@@ -56,5 +69,29 @@ class AppServiceProvider extends ServiceProvider
ini_set('max_execution_time', 300); // 300 seconds = 5 minutes
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
);
}
}