add custom css and add admin button to menu when user is admin

This commit is contained in:
2025-09-05 23:49:04 +02:00
parent 42e439aba5
commit 2fadc37ffe
5 changed files with 34 additions and 31 deletions

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,7 @@ use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
use Filament\Widgets;
use Filament\Navigation\NavigationItem;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
@@ -24,22 +25,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,11 +53,19 @@ class UserPanelProvider extends PanelProvider
DispatchServingFilamentEvent::class,
])
->authMiddleware([
Authenticate::class, // Enforce authentication
Authenticate::class,
])
->navigationGroups([
'Casino' // Group for games, deposits, transactions
'Casino'
])
->navigationItems([
NavigationItem::make('Admin')
->url('/admin')
->icon('heroicon-o-shield-check')
->visible(fn () => auth()->user() && auth()->user()->role === 'admin')
->sort(7)
])
->viteTheme('resources/css/filament/user.css')
->default();
}
}

View File

@@ -0,0 +1,11 @@
.fi-sidebar-item a[href="/admin"] {
background-color: #16a34a; /* Green for admin button */
color: #fff;
padding: 0.5rem 1rem;
border-radius: 0.25rem;
transition: all 0.3s ease;
}
.fi-sidebar-item a[href="/admin"]:hover {
background-color: #15803d;
box-shadow: 0 0 10px rgba(22, 163, 74, 0.5);
}

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>

View File

@@ -4,7 +4,11 @@ import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [
laravel({
input: ['resources/css/app.css', 'resources/js/app.js'],
input: [
'resources/css/app.css',
'resources/css/filament/user.css',
'resources/js/app.js',
],
refresh: true,
}),
],