{{-- Кнопка «в избранное» (ТЗ §12.2). Обычная форма POST: без JavaScript она отправляется как раньше и страница перезагружается. Со скриптом та же форма уходит фоном, кнопка меняет вид на месте, а счётчик в шапке обновляется ответом сервера. Гостю без входа кнопка предлагает войти, а не молча ничего не делает. Два вида по макету: `overlay` — кружок 36 px поверх фотографии в карточке, обычный — кнопка рядом с другими на странице заведения. --}} @props([ 'venue', 'isFavorite' => false, 'label' => false, 'overlay' => false, ]) @php $guest = auth('guest')->user(); $base = $overlay ? 'inline-grid size-9 place-items-center rounded-pill bg-white/[.92] transition-colors' : 'btn'; // Начальный вид рисует сервер, дальше теми же классами его переключает // Alpine — иначе после нажатия кнопка осталась бы прежней. $state = $overlay ? ($isFavorite ? 'text-primary' : 'text-ink-30 hover:text-primary') : ($isFavorite ? 'btn-tonal' : 'btn-secondary'); @endphp @if ($guest === null) merge(['class' => $base.' '.$state.' no-underline hover:no-underline']) }}> @if ($label)В избранное@endif Войдите, чтобы добавить в избранное @else
@csrf
@endif