pelican-panel-mirror/app/Livewire/AlertBannerContainer.php
MartinOscar 3a24edfe1d
Tests: Make PHPstan run in 8.2, 8.3 & 8.4 (#1072)
* Add PHP [8.2,8.3,8.4] matrices to `phpstan`

* Use a pointer with `unset($this)` to make PHP 8.4 happy
2025-03-09 01:58:50 +01:00

38 lines
853 B
PHP

<?php
namespace App\Livewire;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class AlertBannerContainer extends Component
{
/** @var array<AlertBanner> */
public array $alertBanners;
public function mount(): void
{
$this->alertBanners = [];
$this->pullFromSession();
}
public function pullFromSession(): void
{
foreach (session()->pull('alert-banners', []) as $alertBanner) {
$alertBanner = AlertBanner::fromLivewire($alertBanner);
$this->alertBanners[$alertBanner->getId()] = $alertBanner;
}
}
public function remove(string $id): void
{
$alertBanners = &$this->alertBanners;
unset($alertBanners[$id]);
}
public function render(): View
{
return view('livewire.alerts.alert-banner-container');
}
}