Refactor PWAServiceProvider and AdminPanelProvider to enable PWA integration with render hooks for service worker and manifest

This commit is contained in:
dhanabalan
2025-11-04 17:19:26 +05:30
parent ba60c41951
commit b00c819388
2 changed files with 38 additions and 34 deletions

View File

@@ -97,23 +97,23 @@ class AdminPanelProvider extends PanelProvider
->plugin(FilamentSpatieRolesPermissionsPlugin::make());
}
// public function boot(): void
// {
public function boot(): void
{
// FilamentView::registerRenderHook(
// 'panels::head.end',
// fn() => '
// <link rel="manifest" href="' . asset('manifest.json') . '">
// <meta name="theme-color" content="#007bff">
// <script>
// if ("serviceWorker" in navigator) {
// navigator.serviceWorker.register("/sw.js")
// .then(reg => console.log("Service Worker registered:", reg.scope))
// .catch(err => console.error("Service Worker registration failed:", err));
// }
// </script>
// '
// );
FilamentView::registerRenderHook(
'panels::head.end',
fn() => '
<link rel="manifest" href="' . asset('manifest.json') . '">
<meta name="theme-color" content="#007bff">
<script>
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js")
.then(reg => console.log("Service Worker registered:", reg.scope))
.catch(err => console.error("Service Worker registration failed:", err));
}
</script>
'
);
// /**
// * ✅ 2. Add install popup for mobile/desktop
@@ -179,7 +179,11 @@ class AdminPanelProvider extends PanelProvider
// </script>
// '
// );
// }
FilamentView::registerRenderHook('panels::body.end', function () {
return '<script src="' . asset('js/pwa-install.js') . '"></script>';
});
}
}