<?php
namespace App\Providers;
use Filament\Events\TenantSet;
use Filament\Facades\Filament;
use Filament\Navigation\NavigationItem;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\ServiceProvider;
class TenantNavigationServiceProvider extends ServiceProvider
{
public function register(): void
{
}
public function boot(): void
{
Event::listen(TenantSet::class, function (TenantSet $event) {
$tenant = $event->getTenant();
$panel = Filament::getPanel('user');
if ($tenant && $tenant->channels) {
$navigationItems = [];
foreach ($tenant->channels as $channel) {
$navigationItems[] = NavigationItem::make($channel->identifier)
->label($channel->identifier) // Ajusta según tu necesidad
->url('#') // Ajusta según tu necesidad
->icon('heroicon-o-envelope')
->badge(3)
->url(fn(): string => route('filament.user.resources.message-imaps.index', [
'tenant' => Filament::getTenant(),
'channel' => $channel->id]
))
->group('Channels');
}
// Agregar los items de navegación al panel
$panel->navigationItems(array_merge(
$panel->getNavigationItems(),
$navigationItems
));
}
});
}
}
<?php
namespace App\Providers;
use Filament\Events\TenantSet;
use Filament\Facades\Filament;
use Filament\Navigation\NavigationItem;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\ServiceProvider;
class TenantNavigationServiceProvider extends ServiceProvider
{
public function register(): void
{
}
public function boot(): void
{
Event::listen(TenantSet::class, function (TenantSet $event) {
$tenant = $event->getTenant();
$panel = Filament::getPanel('user');
if ($tenant && $tenant->channels) {
$navigationItems = [];
foreach ($tenant->channels as $channel) {
$navigationItems[] = NavigationItem::make($channel->identifier)
->label($channel->identifier) // Ajusta según tu necesidad
->url('#') // Ajusta según tu necesidad
->icon('heroicon-o-envelope')
->badge(3)
->url(fn(): string => route('filament.user.resources.message-imaps.index', [
'tenant' => Filament::getTenant(),
'channel' => $channel->id]
))
->group('Channels');
}
// Agregar los items de navegación al panel
$panel->navigationItems(array_merge(
$panel->getNavigationItems(),
$navigationItems
));
}
});
}
}