38 lines
		
	
	
		
			924 B
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			924 B
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace App\View\Page;
 | |
| 
 | |
| use App\Setting\SettingFactory;
 | |
| use Illuminate\View\Component;
 | |
| 
 | |
| class SettingLayout extends Component
 | |
| {
 | |
| 
 | |
|     public array $entries;
 | |
| 
 | |
|     public function __construct(public string $active)
 | |
|     {
 | |
|         $this->entries = app(SettingFactory::class)->all()
 | |
|             ->map(fn ($setting) => [
 | |
|                 'url' => $setting->url(),
 | |
|                 'is_active' => get_class($setting) === $active,
 | |
|                 'title' => $setting->title(),
 | |
|             ])->toArray();
 | |
|     }
 | |
| 
 | |
|     public function render()
 | |
|     {
 | |
|         return <<<'HTML'
 | |
|             <x-page::layout>
 | |
|                 <x-slot:right>
 | |
|                     {{ $right }}
 | |
|                 </x-slot:right>
 | |
|                 <div class="flex grow relative">
 | |
|                     <x-ui::menulist :entries="$entries"></x-ui::menulist>
 | |
|                     {{ $slot }}
 | |
|                 </div>
 | |
|             </x-page::layout>
 | |
|         HTML;
 | |
|     }
 | |
| }
 |