35 lines
947 B
PHP
35 lines
947 B
PHP
|
<?php
|
||
|
|
||
|
namespace App\View\Ui;
|
||
|
|
||
|
use Illuminate\View\Component;
|
||
|
|
||
|
class Menulist extends Component
|
||
|
{
|
||
|
|
||
|
public function __construct(public array $entries)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public function activeClass($entry): string
|
||
|
{
|
||
|
return $entry['is_active'] ? 'bg-gray-600' : '';
|
||
|
}
|
||
|
|
||
|
public function render()
|
||
|
{
|
||
|
return <<<'HTML'
|
||
|
<div class="p-6 bg-gray-700 border-r border-gray-600 flex-none w-maxc flex flex-col justify-between">
|
||
|
<div class="grid gap-1">
|
||
|
@foreach($entries as $entry)
|
||
|
<a href="{{$entry['url']}}" class="rounded py-1 px-3 text-gray-400 duration-200 hover:bg-gray-600 {{$activeClass($entry)}}" @if($entry['is_active']) data-active @endif>
|
||
|
{{$entry['title']}}
|
||
|
</a>
|
||
|
@endforeach
|
||
|
</div>
|
||
|
<slot name="bottom"></slot>
|
||
|
</div>
|
||
|
HTML;
|
||
|
}
|
||
|
}
|