Compare commits

...

3 Commits

9 changed files with 65 additions and 38 deletions

View File

@@ -9,4 +9,6 @@ class AboutUs extends Page
protected static ?string $navigationIcon = 'heroicon-o-information-circle'; protected static ?string $navigationIcon = 'heroicon-o-information-circle';
protected static string $view = 'filament.user.pages.about-us'; protected static string $view = 'filament.user.pages.about-us';
}
protected static ?int $navigationSort = 6; // Bottom
}

View File

@@ -9,4 +9,6 @@ class Deposits extends Page
protected static ?string $navigationIcon = 'heroicon-o-currency-dollar'; protected static ?string $navigationIcon = 'heroicon-o-currency-dollar';
protected static string $view = 'filament.user.pages.deposits'; protected static string $view = 'filament.user.pages.deposits';
}
protected static ?int $navigationSort = 2;
}

View File

@@ -2,11 +2,13 @@
namespace App\Filament\User\Pages; namespace App\Filament\User\Pages;
use Filament\Pages\Page; use Filament\Pages\Dashboard;
class Lobby extends Page class Lobby extends Dashboard
{ {
protected static ?string $navigationIcon = 'heroicon-o-document-text'; protected static ?string $navigationIcon = 'heroicon-o-home';
protected static string $view = 'filament.user.pages.lobby'; protected static string $view = 'filament.user.pages.lobby';
}
protected static ?int $navigationSort = 1; // Top
}

View File

@@ -9,4 +9,6 @@ class Profile extends Page
protected static ?string $navigationIcon = 'heroicon-o-user-circle'; protected static ?string $navigationIcon = 'heroicon-o-user-circle';
protected static string $view = 'filament.user.pages.profile'; protected static string $view = 'filament.user.pages.profile';
}
protected static ?int $navigationSort = 4;
}

View File

@@ -9,4 +9,6 @@ class Transactions extends Page
protected static ?string $navigationIcon = 'heroicon-o-document-text'; protected static ?string $navigationIcon = 'heroicon-o-document-text';
protected static string $view = 'filament.user.pages.transactions'; protected static string $view = 'filament.user.pages.transactions';
}
protected static ?int $navigationSort = 3;
}

View File

@@ -9,4 +9,6 @@ class VIP extends Page
protected static ?string $navigationIcon = 'heroicon-o-star'; protected static ?string $navigationIcon = 'heroicon-o-star';
protected static string $view = 'filament.user.pages.v-i-p'; protected static string $view = 'filament.user.pages.v-i-p';
}
protected static ?int $navigationSort = 5;
}

View File

@@ -1,17 +0,0 @@
<?php
namespace App\Filament\User\Widgets;
use Filament\Widgets\Widget;
class AdminLinkWidget extends Widget
{
protected static ?int $sort = 2;
protected static string $view = 'filament.user.widgets.admin-link-widget';
public function shouldRender(): bool
{
return auth()->user() && auth()->user()->role === 'admin';
}
}

View File

@@ -11,6 +11,8 @@ use Filament\Panel;
use Filament\PanelProvider; use Filament\PanelProvider;
use Filament\Support\Colors\Color; use Filament\Support\Colors\Color;
use Filament\Widgets; use Filament\Widgets;
use Filament\Navigation\NavigationItem;
use Filament\Navigation\NavigationGroup;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies; use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
@@ -24,22 +26,21 @@ class UserPanelProvider extends PanelProvider
{ {
return $panel return $panel
->id('user') ->id('user')
->path('lobby') // Serve at /lobby ->path('lobby')
->login() // Filament login UI ->login()
->registration() // Filament registration UI ->registration()
->colors([ ->colors([
'primary' => Color::Purple, // Purple for user panel 'primary' => Color::Purple,
]) ])
->brandLogo(null) // Text brand name only ->brandLogo(null)
->discoverResources(in: app_path('Filament/User/Resources'), for: 'App\\Filament\\User\\Resources') ->discoverResources(in: app_path('Filament/User/Resources'), for: 'App\\Filament\\User\\Resources')
->discoverPages(in: app_path('Filament/User/Pages'), for: 'App\\Filament\\User\\Pages') ->discoverPages(in: app_path('Filament/User/Pages'), for: 'App\\Filament\\User\\Pages')
->pages([ ->pages([
\App\Filament\User\Pages\Lobby::class, // Lobby as dashboard \App\Filament\User\Pages\Lobby::class,
]) ])
->discoverWidgets(in: app_path('Filament/User/Widgets'), for: 'App\\Filament\\User\\Widgets') ->discoverWidgets(in: app_path('Filament/User/Widgets'), for: 'App\\Filament\\User\\Widgets')
->widgets([ ->widgets([
Widgets\AccountWidget::class, Widgets\AccountWidget::class,
\App\Filament\User\Widgets\AdminLinkWidget::class,
]) ])
->middleware([ ->middleware([
EncryptCookies::class, EncryptCookies::class,
@@ -53,10 +54,44 @@ class UserPanelProvider extends PanelProvider
DispatchServingFilamentEvent::class, DispatchServingFilamentEvent::class,
]) ])
->authMiddleware([ ->authMiddleware([
Authenticate::class, // Enforce authentication Authenticate::class,
]) ])
->navigationGroups([ ->navigationGroups([
'Casino' // Group for games, deposits, transactions NavigationGroup::make('Casino')
->items([
NavigationItem::make('Lobby')
->url(fn () => route('filament.user.pages.lobby'))
->icon('heroicon-o-home')
->sort(1),
NavigationItem::make('Deposits')
->url(fn () => route('filament.user.pages.deposits'))
->icon('heroicon-o-currency-dollar')
->sort(2),
NavigationItem::make('Transactions')
->url(fn () => route('filament.user.pages.transactions'))
->icon('heroicon-o-document-text')
->sort(3),
NavigationItem::make('Profile')
->url(fn () => route('filament.user.pages.profile'))
->icon('heroicon-o-user-circle')
->sort(4),
NavigationItem::make('VIP')
->url(fn () => route('filament.user.pages.v-i-p'))
->icon('heroicon-o-star')
->sort(5),
NavigationItem::make('About Us')
->url(fn () => route('filament.user.pages.about-us'))
->icon('heroicon-o-information-circle')
->sort(6),
]),
NavigationGroup::make('Administration')
->items([
NavigationItem::make('Admin Panel')
->url('/admin')
->icon('heroicon-o-shield-check')
->visible(fn () => auth()->user() && auth()->user()->role === 'admin')
->sort(7),
]),
]) ])
->default(); ->default();
} }

View File

@@ -1,3 +0,0 @@
<x-filament-widgets::widget>
<a href="/admin" class="filament-button filament-button-size-sm">Admin Panel</a>
</x-filament-widgets::widget>