Compare commits
3 Commits
72c60bb74c
...
c8ab71b92a
| Author | SHA1 | Date | |
|---|---|---|---|
| c8ab71b92a | |||
| 2fadc37ffe | |||
| 42e439aba5 |
@@ -9,4 +9,6 @@ class AboutUs extends Page
|
||||
protected static ?string $navigationIcon = 'heroicon-o-information-circle';
|
||||
|
||||
protected static string $view = 'filament.user.pages.about-us';
|
||||
|
||||
protected static ?int $navigationSort = 6; // Bottom
|
||||
}
|
||||
@@ -9,4 +9,6 @@ class Deposits extends Page
|
||||
protected static ?string $navigationIcon = 'heroicon-o-currency-dollar';
|
||||
|
||||
protected static string $view = 'filament.user.pages.deposits';
|
||||
|
||||
protected static ?int $navigationSort = 2;
|
||||
}
|
||||
@@ -2,11 +2,13 @@
|
||||
|
||||
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 ?int $navigationSort = 1; // Top
|
||||
}
|
||||
@@ -9,4 +9,6 @@ class Profile extends Page
|
||||
protected static ?string $navigationIcon = 'heroicon-o-user-circle';
|
||||
|
||||
protected static string $view = 'filament.user.pages.profile';
|
||||
|
||||
protected static ?int $navigationSort = 4;
|
||||
}
|
||||
@@ -9,4 +9,6 @@ class Transactions extends Page
|
||||
protected static ?string $navigationIcon = 'heroicon-o-document-text';
|
||||
|
||||
protected static string $view = 'filament.user.pages.transactions';
|
||||
|
||||
protected static ?int $navigationSort = 3;
|
||||
}
|
||||
@@ -9,4 +9,6 @@ class VIP extends Page
|
||||
protected static ?string $navigationIcon = 'heroicon-o-star';
|
||||
|
||||
protected static string $view = 'filament.user.pages.v-i-p';
|
||||
|
||||
protected static ?int $navigationSort = 5;
|
||||
}
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,8 @@ use Filament\Panel;
|
||||
use Filament\PanelProvider;
|
||||
use Filament\Support\Colors\Color;
|
||||
use Filament\Widgets;
|
||||
use Filament\Navigation\NavigationItem;
|
||||
use Filament\Navigation\NavigationGroup;
|
||||
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
||||
use Illuminate\Cookie\Middleware\EncryptCookies;
|
||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
||||
@@ -24,22 +26,21 @@ class UserPanelProvider extends PanelProvider
|
||||
{
|
||||
return $panel
|
||||
->id('user')
|
||||
->path('lobby') // Serve at /lobby
|
||||
->login() // Filament login UI
|
||||
->registration() // Filament registration UI
|
||||
->path('lobby')
|
||||
->login()
|
||||
->registration()
|
||||
->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')
|
||||
->discoverPages(in: app_path('Filament/User/Pages'), for: 'App\\Filament\\User\\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')
|
||||
->widgets([
|
||||
Widgets\AccountWidget::class,
|
||||
\App\Filament\User\Widgets\AdminLinkWidget::class,
|
||||
])
|
||||
->middleware([
|
||||
EncryptCookies::class,
|
||||
@@ -53,10 +54,44 @@ class UserPanelProvider extends PanelProvider
|
||||
DispatchServingFilamentEvent::class,
|
||||
])
|
||||
->authMiddleware([
|
||||
Authenticate::class, // Enforce authentication
|
||||
Authenticate::class,
|
||||
])
|
||||
->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();
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user