@php use App\Helpers\SeoHelper; use App\Support\Navigation\DynamicNavResolver; $navConfig = config('dynamic-nav'); $isNavTestSandbox = (bool) preg_match('#-dynamic$#', DynamicNavResolver::normalizePath(request()->path())); $navItems = $isNavTestSandbox ? ($navConfig['items'] ?? []) : []; $megaNavData = $megaNavData ?? []; $navLabel = $navLabel ?? static function (string $key, string $fallback): string { $translated = __("messages.nav.{$key}"); return $translated === "messages.nav.{$key}" ? $fallback : $translated; }; $cta = $megaNavData['cta'] ?? ($navConfig['cta'] ?? ['label' => 'Get a quote', 'href' => '/contact']); $languages = $megaNavData['languages'] ?? []; $navState = $navState ?? ['mode' => 'default']; $mode = $navState['mode'] ?? 'default'; $navTheme = $navState['theme'] ?? 'light'; $heroTheme = $navState['heroTheme'] ?? $navTheme; $activeSubItem = array_key_exists('activeSubItem', $navState) ? $navState['activeSubItem'] : ($mode === 'context' && count($navState['subItems'] ?? []) ? 'overview' : null); $subItems = $navState['subItems'] ?? []; $sectionLabel = $navState['sectionLabel'] ?? __('messages.breadcrumbs.services'); $sectionHref = $navState['sectionHref'] ?? SeoHelper::localizedRoute('services.index', [], app()->getLocale()); $pageLabel = $navState['pageLabel'] ?? 'Website Development'; $currentPath = request()->path(); $currentPathNormalized = '/' . ltrim($currentPath, '/'); $logoHref = $navState['parentHref'] ?? SeoHelper::localizedRoute('home', [], app()->getLocale()); $parentHref = $logoHref; $iconPath = asset('images/criazo-icon.svg'); $wordmarkPath = asset('images/criazo-wordmark.svg'); $currentLocale = app()->getLocale(); $seoLanguages = config('seo.languages', []); $resolveLangHref = static function (string $locale, string $currentPath): string { $normalized = '/' . ltrim($currentPath, '/'); $basePath = preg_replace('#^/(pt|es|fr|br|de|nl|it|us|ca)(?=/)#', '', $normalized) ?: '/'; if ($locale === 'en') { return $basePath; } return '/' . $locale . $basePath; }; $languages = collect($languages)->map(function ($entry) use ($seoLanguages, $currentPathNormalized, $resolveLangHref) { $locale = $entry['locale'] ?? 'en'; $seo = $seoLanguages[$locale] ?? []; return [ 'locale' => $locale, 'href' => $resolveLangHref($locale, $currentPathNormalized), 'flag' => $seo['flag'] ?? '🌍', 'language' => $seo['native_name'] ?? $locale, 'region' => $seo['name'] ?? $locale, ]; })->values()->all(); $activeLang = collect($languages)->firstWhere('locale', $currentLocale) ?? $languages[0] ?? null; @endphp @php $isNavTestSandbox = (bool) preg_match('#-dynamic$#', DynamicNavResolver::normalizePath(request()->path())); $dynamicNavJsConfig = [ 'items' => $isNavTestSandbox ? $navItems : [], 'routes' => $isNavTestSandbox ? ($navConfig['routes'] ?? []) : [], 'cta' => $cta, 'parentHref' => $parentHref, 'navState' => [ 'mode' => $mode, 'theme' => $navTheme, 'heroTheme' => $heroTheme, 'sectionId' => $navState['sectionId'] ?? null, 'sectionLabel' => $sectionLabel, 'sectionHref' => $sectionHref, 'pageLabel' => $pageLabel, 'pageHref' => $navState['pageHref'] ?? null, 'activeSubItem' => $activeSubItem, 'subItems' => $subItems, 'parentHref' => $parentHref, 'backUrl' => $navState['backUrl'] ?? $sectionHref, ], ]; @endphp @if($heroTheme === 'dark') @endif