45 lines
1.3 KiB
PHP
45 lines
1.3 KiB
PHP
@php
|
|
// config에서 CS 탭 가져와서, 기존 subpage-sidenav가 기대하는 형식(label,url,key)으로 변환
|
|
$items = collect(config('web.cs_tabs', []))
|
|
->map(function ($t) {
|
|
return [
|
|
'label' => $t['label'] ?? '',
|
|
'url' => isset($t['route']) ? route($t['route']) : '#',
|
|
'key' => $t['key'] ?? null,
|
|
];
|
|
})
|
|
->values()
|
|
->all();
|
|
|
|
// activeKey는 페이지에서 넘기거나, 없으면 현재 route로 자동 판별도 가능
|
|
$activeKey = $activeKey ?? null;
|
|
|
|
if (!$activeKey) {
|
|
// route 기반 자동 active (routeIs가 동작하려면 routes에 name이 있어야 함)
|
|
foreach (config('web.cs_tabs', []) as $t) {
|
|
if (!empty($t['route']) && request()->routeIs($t['route'])) {
|
|
$activeKey = $t['key'] ?? null;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
@endphp
|
|
|
|
{{-- Mobile Tabs --}}
|
|
<div class="subpage-tabs">
|
|
@include('web.partials.subpage-sidenav', [
|
|
'items' => $items,
|
|
'active' => $activeKey,
|
|
'mode' => 'tabs'
|
|
])
|
|
</div>
|
|
|
|
{{-- Desktop Side --}}
|
|
<aside class="subpage-side" aria-label="고객센터 메뉴">
|
|
@include('web.partials.subpage-sidenav', [
|
|
'items' => $items,
|
|
'active' => $activeKey,
|
|
'mode' => 'side'
|
|
])
|
|
</aside>
|