55 lines
1.8 KiB
PHP
55 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Modules\Base\Components\Page;
|
|
|
|
use Illuminate\View\Component;
|
|
|
|
class Layout extends Component
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
}
|
|
|
|
public function userName(): string
|
|
{
|
|
return auth()->user()->firstname . ' ' . auth()->user()->lastname;
|
|
}
|
|
|
|
public function userAvatar(): string
|
|
{
|
|
return auth()->user()->getGravatarUrl();
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return <<<'HTML'
|
|
<div class="grow bg-gray-900 flex flex-col transition-all ml-56" :class="{'ml-56': menuStore.visible, 'ml-0': !menuStore.visible}">
|
|
<x-page::header title="{{ session()->get('title') }}">
|
|
<x-slot:beforeTitle>
|
|
<a href="#" class="mr-2 lg:hidden" @click.prevent="menuStore.toggle()">
|
|
<ui-sprite src="menu" class="text-gray-100 w-5 h-5"></ui-sprite>
|
|
</a>
|
|
</x-slot:beforeTitle>
|
|
<x-slot:toolbar>
|
|
{{ $toolbar ?? ''}}
|
|
</x-slot:toolbar>
|
|
<x-slot:right>
|
|
{{ $right ?? '' }}
|
|
<div class="flex items-center space-x-2">
|
|
<div class="rounded-full overflow-hidden border-2 border-solid border-gray-300">
|
|
<img src="{{ $userAvatar() }}" class="w-8 h-8 object-cover" />
|
|
</div>
|
|
<div class="text-gray-300"">{{ $userName() }}</div>
|
|
</div>
|
|
</x-slot:right>
|
|
</x-page::header>
|
|
|
|
<div :class="pageClass" class="grow flex flex-col">
|
|
{{ $slot }}
|
|
</div>
|
|
</div>
|
|
HTML;
|
|
}
|
|
}
|