2024-09-24 01:26:08 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Modules\Dashboard\Components;
|
|
|
|
|
|
|
|
use Livewire\Component;
|
|
|
|
use Modules\Dashboard\DashboardFactory;
|
|
|
|
|
|
|
|
class DashboardComponent extends Component
|
|
|
|
{
|
|
|
|
|
|
|
|
private array $blocks = [];
|
|
|
|
|
|
|
|
public function mount(DashboardFactory $factory): void
|
|
|
|
{
|
|
|
|
$this->blocks = $factory->load();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function render(): string
|
|
|
|
{
|
|
|
|
return <<<'HTML'
|
2024-12-06 16:54:32 +01:00
|
|
|
<x-page::layout title="Dashboard" menu="dashboard">
|
2024-09-24 01:26:08 +02:00
|
|
|
<div class="gap-6 md:grid-cols-2 xl:grid-cols-4 grid p-6">
|
|
|
|
@foreach($this->blocks as $block)
|
|
|
|
<x-ui::box title="{{$block->title()}}" :second="true">
|
|
|
|
<livewire:dynamic-component is="{{ get_class($block) }}" lazy></livewire:dynamic-component>
|
|
|
|
</x-ui::box>
|
|
|
|
@endforeach
|
|
|
|
</div>
|
|
|
|
</x-page::layout>
|
|
|
|
HTML;
|
|
|
|
}
|
|
|
|
}
|