PHP code example of edu17 / filament-pwa-plugin

1. Go to this page and download the library: Download edu17/filament-pwa-plugin library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

edu17 / filament-pwa-plugin example snippets


use Edu17\FilamentPwaPlugin\FilamentPwaPlugin;
use Filament\Panel;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(FilamentPwaPlugin::make());
}

return [
    'enabled' => true,

    'manifest' => [
        'name' => config('app.name', 'Filament'),
        'short_name' => config('app.name', 'Filament'),
        'description' => null,
        'id' => null,
        'start_url' => null,
        'scope' => null,
        'display' => 'standalone',
        'orientation' => 'any',
        'theme_color' => '#18181b',
        'background_color' => '#ffffff',
    ],

    'offline' => [
        'cache_version' => '1',
        'precache' => [],
        'title' => 'You are offline',
        'message' => 'Check your internet connection and try again.',
        'retry_label' => 'Try again',
    ],

    'settings' => [
        'enabled' => false,
        'navigation_panels' => [],
        'manageable_panels' => [],
        'ability' => null,
        'disk' => 'public',
        'directory' => 'filament-pwa-plugin',
    ],
];

FilamentPwaPlugin::make()
    ->name('Administration')
    ->shortName('Admin')
    ->description('Manage the application.')
    ->themeColor('#f59e0b')
    ->backgroundColor('#ffffff')
    ->display('standalone')
    ->orientation('any')
    ->startUrl('/admin')
    ->scope('/admin')
    ->manifestId('/admin');

FilamentPwaPlugin::make()
    ->name(fn (Panel $panel): string => "{$panel->getId()} app")
    ->enabled(fn (Panel $panel): bool => $panel->getId() !== 'internal');

// config/pwa-plugin.php
'settings' => [
    'enabled' => true,
    'navigation_panels' => ['superadmin'],
    'manageable_panels' => ['admin'],
    'ability' => null,
    'disk' => 'public',
    'directory' => 'filament-pwa-plugin',
],

// SuperadminPanelProvider.php
->plugin(
    FilamentPwaPlugin::make()
        ->enabled(false),
)

// AdminPanelProvider.php
->plugin(
    FilamentPwaPlugin::make()
        ->name('My application'),
)

// config/pwa-plugin.php
'settings' => [
    'enabled' => true,
    'navigation_panels' => ['admin'],
    'manageable_panels' => ['admin'],
    'ability' => null,
    'disk' => 'public',
    'directory' => 'filament-pwa-plugin',
],

'navigation_panels' => ['superadmin'],
'manageable_panels' => ['admin', 'staff', 'customer'],

'ability' => null,

'ability' => 'manage-pwa-settings',

use App\Models\User;
use Illuminate\Support\Facades\Gate;

Gate::define(
    'manage-pwa-settings',
    fn (User $user): bool => $user->is_super_admin,
);

FilamentPwaPlugin::make()
    ->settingsPage()
    ->managePanels(['admin'])
    ->authorizeSettingsUsing(
        fn ($user, Panel $panel): bool => $user?->is_super_admin === true,
    );
bash
php artisan filament-pwa-plugin:install
bash
php artisan migrate
bash
php artisan vendor:publish --tag="filament-pwa-plugin-config"
php artisan vendor:publish --tag="filament-pwa-plugin-migrations"
php artisan vendor:publish --tag="filament-pwa-plugin-assets"
php artisan migrate
php artisan filament:assets
bash
php artisan storage:link
bash
php artisan optimize:clear
bash
php artisan vendor:publish --tag="filament-pwa-plugin-migrations"
php artisan vendor:publish --tag="filament-pwa-plugin-assets" --force
php artisan migrate
php artisan filament:assets
php artisan optimize:clear