@php $seo = \App\Models\SeoSetting::current(); $siteLogo = !empty($seo?->logo) ? asset($seo->logo) : asset('hisabseba.png'); $siteFavicon = !empty($seo?->favicon) ? asset($seo->favicon) : asset('hisabseba-favicon.png'); $siteName = $seo->site_name ?? 'Hisab Seba'; @endphp @yield('title', $siteName) @php use Illuminate\Support\Str; use Carbon\Carbon; $is = fn($pattern) => request()->routeIs($pattern); $user = auth()->user(); $userName = $user->name ?? __('user_layouts.user_fallback'); $userPhoto = null; $rawUserPhoto = $user->photo ?? $user->image ?? $user->avatar ?? null; if (!empty($rawUserPhoto)) { $rawUserPhoto = ltrim($rawUserPhoto, '/'); if (Str::startsWith($rawUserPhoto, ['http://', 'https://'])) { $userPhoto = $rawUserPhoto; } else { $userPhoto = asset($rawUserPhoto); } } $userInitial = Str::upper(Str::substr($userName, 0, 1)); $currentLocale = $currentLocale ?? app()->getLocale(); $supportedLocales = $supportedLocales ?? config('app.supported_locales', [ 'bn' => 'বাংলা', 'en' => 'English', ]); /** * Initial subscription render for instant UI. * Priority: * 1) $subscription if already shared from controller/view composer * 2) null fallback */ $initialSubscription = $subscription ?? null; $initialHasSubscription = false; $initialPlanName = __('user_layouts.subscription.plan_name'); $initialExpiryText = '--'; $initialRemainingSeconds = 0; $initialStatusText = __('user_layouts.subscription.expired'); $initialBarClasses = 'border-rose-200 bg-rose-50'; $initialDotClasses = 'h-2.5 w-2.5 rounded-full bg-rose-500'; if ($initialSubscription) { $endDateRaw = $initialSubscription->end_date ?? null; $endDate = $endDateRaw ? Carbon::parse($endDateRaw) : null; $remainingSeconds = $endDate ? now()->diffInSeconds($endDate, false) : 0; $planName = $initialSubscription->plan_name ?? $initialSubscription->plan->name ?? $initialSubscription->subscriptionPlan->name ?? $initialSubscription->name ?? __('user_layouts.subscription.active_plan'); if ($endDate && $remainingSeconds > 0) { $initialHasSubscription = true; $initialPlanName = $planName; $initialExpiryText = __('user_layouts.subscription.expiry_prefix') . ': ' . $endDate->format('d M, Y h:i A'); $initialRemainingSeconds = $remainingSeconds; $initialStatusText = __('user_layouts.subscription.active'); $initialBarClasses = 'border-emerald-200 bg-emerald-50'; $initialDotClasses = 'h-2.5 w-2.5 rounded-full bg-emerald-500'; } else { $initialPlanName = __('user_layouts.subscription.renew_subscription'); $initialExpiryText = __('user_layouts.subscription.access_restricted'); } } $initialCountdownText = '0s'; if ($initialRemainingSeconds > 0) { $days = floor($initialRemainingSeconds / 86400); $hours = floor(($initialRemainingSeconds % 86400) / 3600); $minutes = floor(($initialRemainingSeconds % 3600) / 60); $seconds = $initialRemainingSeconds % 60; if ($days > 0) { $initialCountdownText = "{$days}d {$hours}h {$minutes}m {$seconds}s"; } elseif ($hours > 0) { $initialCountdownText = "{$hours}h {$minutes}m {$seconds}s"; } elseif ($minutes > 0) { $initialCountdownText = "{$minutes}m {$seconds}s"; } else { $initialCountdownText = "{$seconds}s"; } } @endphp
@if(auth()->check() && !request()->routeIs('user.subscriptions.*'))
{{ $initialStatusText }} {{ $initialPlanName }} {{ __('user_layouts.subscription.ends_in') }} {{ $initialCountdownText }}
{{ $initialExpiryText }}
@endif
{{ $siteName }}
@yield('content')
@stack('scripts')
@if(session('swal_error')) @endif @if(auth()->check() && !request()->routeIs('user.subscriptions.*')) @endif @yield('scripts')