<?php namespace App\Web\Components; use App\Models\User; use Filament\Pages\Page as BasePage; use Illuminate\View\ComponentAttributeBag; abstract class Page extends BasePage { protected static string $view = 'components.page'; protected ?string $live = '5s'; /** * @var array<string, mixed> */ protected array $extraAttributes = []; /** * @return array<string, mixed> */ protected function getExtraAttributes(): array { $attributes = $this->extraAttributes; if (! in_array($this->getLive(), [null, '', '0'], true)) { $attributes['wire:poll.'.$this->getLive()] = '$dispatch(\'$refresh\')'; } return $attributes; } public function getExtraAttributesBag(): ComponentAttributeBag { return new ComponentAttributeBag($this->getExtraAttributes()); } public function getLive(): ?string { return $this->live; } /** * @return array<int, mixed> */ public function getWidgets(): array { return []; } protected function getUser(): User { /** @var User $user */ $user = auth()->user(); return $user; } }