{{-- O RESULTADO DA BUSCA, ISOLADO DO RESTO DA PÁGINA. É um partial e não parte do index porque a busca ao vivo troca exatamente este pedaço: o live-search.js pede a mesma URL com o cabeçalho de AJAX, o controller devolve só este arquivo (sem layout) e o JS joga o HTML no lugar. Um trecho só, renderizado pelo mesmo Blade nos dois caminhos — a alternativa seria devolver JSON e remontar a tabela em JavaScript, o que duplicaria em JS toda a formatação que já existe aqui. TUDO O QUE MUDA COM O FILTRO PRECISA ESTAR AQUI DENTRO, inclusive a paginação: ela some quando a busca devolve uma página só, e se ficasse fora continuaria na tela apontando para resultados que não existem mais. --}}
@forelse ($organizations as $organization) {{-- Nome sem link: "Visualizar" já está na coluna de ações. Dois caminhos para a mesma tela obrigam o usuário a decidir qual usar, e o link no nome ainda competia com a leitura da tabela. --}} {{-- Situação como toggle: liga/desliga salva na hora. Não há payload — a intenção está na própria URL, então o form aponta para suspend ou reactivate conforme o estado atual, reaproveitando as rotas já usadas na tela de detalhe. O `data-confirm` só entra ao SUSPENDER, que é o lado destrutivo (derruba todos os usuários da arena). Reativar é inofensivo e vai direto. O envio fica a cargo de status-switch.js, não de um `onchange` inline: `form.submit()` nativo pula o modal de confirmação. Veja o módulo. --}} {{-- O vencido ganha destaque mas NÃO muda nada no acesso: nada bloqueia por expiração ainda. O badge é o aviso ao operador de que aquela arena precisa de renovação — evita que a coluna vire uma data que ninguém olha. --}} {{-- AÇÕES SEMPRE VISÍVEIS ($inline), não no menu que abria ao passar o mouse: o gesto escondia as três ações da linha e não existe em toque nem no teclado. Mesma decisão já tomada em courts/index. O TOGGLE DE SITUAÇÃO CONTINUA FORA DAQUI. Ele é o ESTADO da arena, que a coluna existe para mostrar de relance na tabela inteira. "Visualizar" e "Administrar" vêm pelo slot $extra porque o partial só prevê editar e apagar — nas demais listagens não há tela de detalhe nem entrada de suporte, aqui há. Como feitio inline, usam a mesma classe de botão que o lápis e a lixeira, com o nome da arena no `aria-label` já que só o ícone aparece. O slot recebe uma VIEW renderizada e não uma string concatenada: "Administrar" é um POST com CSRF, e montar um formulário por concatenação é como o token acaba esquecido numa alteração. --}} @empty @endforelse
Arena Documento Usuários Situação Expira em Cadastro Ações
{{ $organization->name }}
{{ $organization->email }}
{{ $organization->formattedDocument() }}
{{ $organization->document_type?->label() }}
{{ $organization->users_count }}
active) data-confirm="Suspender {{ $organization->name }}? Todos os usuários dela perderão o acesso." data-confirm-label="Suspender" @endif> @csrf active) aria-label="Situação de {{ $organization->name }}"> {{ $organization->active ? 'Ativa' : 'Suspensa' }}
{{ $organization->expires_at->format('d/m/Y') }} @if ($organization->hasExpired()) Vencida @endif {{ $organization->created_at->format('d/m/Y') }} @include('partials.row-actions', [ 'label' => $organization->name, 'inline' => true, 'editUrl' => route('platform.organizations.edit', $organization), 'deleteUrl' => route('platform.organizations.destroy', $organization), 'confirm' => 'Remover '.$organization->name.'? A arena sai da plataforma e todos os usuários dela perdem o acesso. Os dados são preservados e a remoção pode ser desfeita pelo suporte.', 'extra' => new Illuminate\Support\HtmlString( view('platform.organizations._row-extra', ['organization' => $organization])->render() ), ])
Nenhuma arena encontrada.
{{-- A CONTAGEM É SEMPRE VISÍVEL, os controles nem sempre. O `links()` do Laravel não renderiza nada quando só existe uma página — o que é razoável, mas deixa a tela sem dizer quantas arenas existem nem quantas o filtro devolveu. Com poucos registros parecia que não havia paginação alguma. `data-live-search-page` marca a região cujos links o live-search.js deve interceptar. O escopo é estreito de propósito: dentro do container de resultados também estão "Visualizar" e "Editar" de cada linha, e capturar todo transformaria a navegação para o detalhe da arena numa troca de tabela. --}}

@if ($organizations->total() === 0) Nenhuma arena encontrada. @else {{-- Numa linha só de propósito: quebrar a frase no Blade insere quebras e indentação no meio do texto renderizado. --}} Mostrando {{ $organizations->firstItem() }}–{{ $organizations->lastItem() }} de {{ $organizations->total() }} {{ $organizations->total() === 1 ? 'arena' : 'arenas' }}. @endif

{{ $organizations->links() }}