add custom css and add admin button to menu when user is admin
This commit is contained in:
@@ -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,7 @@ 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 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 +25,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,11 +53,19 @@ class UserPanelProvider extends PanelProvider
|
|||||||
DispatchServingFilamentEvent::class,
|
DispatchServingFilamentEvent::class,
|
||||||
])
|
])
|
||||||
->authMiddleware([
|
->authMiddleware([
|
||||||
Authenticate::class, // Enforce authentication
|
Authenticate::class,
|
||||||
])
|
])
|
||||||
->navigationGroups([
|
->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();
|
->default();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
11
resources/css/filament/user.css
Normal file
11
resources/css/filament/user.css
Normal 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);
|
||||||
|
}
|
||||||
@@ -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>
|
|
||||||
@@ -4,8 +4,12 @@ import laravel from 'laravel-vite-plugin';
|
|||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
laravel({
|
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,
|
refresh: true,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user