@php use App\Models\Platform\SiteSetting as PlatformSiteSetting; use App\Support\Tenant\StoragePaths; use Illuminate\Support\Facades\File; $tenant = tenant(); $settings = $tenantSiteSettings ?? ($tenant ? null : PlatformSiteSetting::singleton()); $isTenantContext = (bool) $tenant; $siteName = $siteName ?? ( $settings?->site_name ?? ($tenant?->name ?? config('app.name', 'qpost')) ); $siteDescription = $siteDescription ?? ( $settings?->site_description ?? 'QPOST' ); $status = (string) ($status ?? '500'); $statusLabel = $statusLabel ?? match ($status) { '404' => 'Not Found', '419' => 'Session Expired', '500' => 'Server Error', default => 'Forbidden', }; $title = $title ?? '문제가 발생했습니다'; $description = $description ?? '잠시 후 다시 시도해 주세요.'; $homeUrl = $homeUrl ?? ($isTenantContext ? tenant_url() . '/' : route('platform.home')); $backUrl = $backUrl ?? url()->previous(); $primaryLabel = $primaryLabel ?? '홈으로'; $primaryHref = $primaryHref ?? $homeUrl; $secondaryLabel = $secondaryLabel ?? '이전 페이지로'; $secondaryHref = $secondaryHref ?? $backUrl; $tertiaryLabel = $tertiaryLabel ?? null; $tertiaryHref = $tertiaryHref ?? null; $helpText = $helpText ?? null; $iconClass = match ($status) { '404' => 'bg-warning-soft c-primary', '419' => 'bg-accent-soft c-primary', '500' => 'bg-danger-soft c-danger', default => 'bg-primary-soft c-primary', }; $badgeClass = match ($status) { '404' => 'border border-warning-soft bg-warning-soft c-primary', '419' => 'border border-primary-soft bg-primary-soft c-primary', '500' => 'border border-danger-soft bg-danger-soft c-danger', default => 'border border-danger-soft bg-danger-soft c-danger', }; $tenantStyleUrl = null; if ($isTenantContext) { $tenantStylePath = StoragePaths::styleAbsolutePath($tenant->getTenantKey()); $tenantStyleVersion = $tenantStylePath && File::exists($tenantStylePath) ? filemtime($tenantStylePath) : null; $tenantStyleUrl = $tenantStyleVersion ? tenant_url(null, 'style.css') . '?v=' . $tenantStyleVersion : null; } $bodyClass = $isTenantContext ? 'min-h-screen bg-base c-main scope-tenant theme-default' : 'min-h-screen bg-base c-main scope-platform theme-default'; @endphp {{ $status . ' ' . $title }} @if ($isTenantContext && $settings?->favicon_path) @endif @vite(['resources/css/app.css', 'resources/css/themes/default.css', 'resources/js/app.js']) @if ($tenantStyleUrl) @endif @stack('head') @stack('styles')
@if ($status === '404') @elseif ($status === '419') @elseif ($status === '500') @else @endif
{{ $status }} {{ $statusLabel }}

{{ $title }}

{{ $description }}

@if ($secondaryHref && $secondaryLabel) {{ $secondaryLabel }} @endif @if ($tertiaryHref && $tertiaryLabel) {{ $tertiaryLabel }} @endif @if ($primaryHref && $primaryLabel) {{ $primaryLabel }} @endif
@if ($helpText)

{{ $helpText }}

@endif
@stack('scripts')