@props([
    'items' => [],
    'user' => null,
    'showUser' => false,
    'variant' => 'dropdown',
    'onNavigate' => null,
])

@php
    $linkClass = match ($variant) {
        'sheet' => 'block rounded-xl px-4 py-3 text-sm font-medium text-slate-700 transition hover:bg-slate-100',
        default => 'block rounded-lg px-3 py-2 text-sm text-slate-700 hover:bg-slate-100',
    };

    $logoutClass = match ($variant) {
        'sheet' => 'w-full rounded-xl px-4 py-3 text-left text-sm font-medium text-rose-600 transition hover:bg-rose-50',
        default => 'w-full rounded-lg px-3 py-2 text-left text-sm text-rose-600 hover:bg-rose-50',
    };

    $logoutWrapperClass = match ($variant) {
        'sheet' => 'border-t border-slate-100 pt-2',
        default => '',
    };

    $dividerClass = match ($variant) {
        default => 'my-1 border-t border-slate-100',
    };

    $containerClass = match ($variant) {
        'sheet' => 'space-y-1 p-2 pb-4',
        default => 'p-1',
    };
@endphp

<div {{ $attributes->merge(['class' => $containerClass]) }}>
    @if ($showUser && $user)
        <div class="px-3 py-2">
            <p class="truncate text-sm font-semibold text-slate-900">{{ $user->name ?? 'Your account' }}</p>
            <p class="truncate text-xs text-slate-400">{{ $user->email }}</p>
        </div>
        <div class="{{ $dividerClass }}"></div>
    @endif

    @foreach ($items as $item)
        @if (($item['type'] ?? 'link') === 'link')
            <a href="{{ $item['href'] }}"
               class="{{ $linkClass }}"
               @if ($onNavigate) @click="{{ $onNavigate }}" @endif>
                {{ $item['label'] }}
            </a>
        @elseif (($item['type'] ?? '') === 'wallet')
            @includeIf('partials.wallet-widget', [
                'onNavigate' => $onNavigate,
                'class' => $variant === 'sheet' ? 'mx-2' : 'mx-1',
            ])
        @elseif (($item['type'] ?? '') === 'logout')
            @if ($variant !== 'sheet')
                <div class="{{ $dividerClass }}"></div>
            @endif
            <form method="POST" action="{{ $item['action'] }}" class="{{ $logoutWrapperClass }}">
                @csrf
                <button type="submit" class="{{ $logoutClass }}">
                    {{ $item['label'] }}
                </button>
            </form>
        @endif
    @endforeach
</div>
