36 lines
		
	
	
		
			967 B
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			967 B
		
	
	
	
		
			PHP
		
	
	
	
<?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
 | 
						|
    {
 | 
						|
        session()->put('menu', 'dashboard');
 | 
						|
        session()->put('title', 'Dashboard');
 | 
						|
 | 
						|
        $this->blocks = $factory->load();
 | 
						|
    }
 | 
						|
 | 
						|
    public function render(): string
 | 
						|
    {
 | 
						|
        return <<<'HTML'
 | 
						|
            <x-page::layout>
 | 
						|
                <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;
 | 
						|
    }
 | 
						|
}
 |