@php // Etapa 2D — só dados reais do model, sem inventar identificação: // mesmo padrão "{numero ou 's/nº'}/{ano} — {titulo}" já usado no // bloco de matérias semelhantes logo abaixo (e nas listagens de // Protocolo). "Processo Legislativo" não é uma página própria — só // o rótulo do grupo do menu — por isso 'rota' => null (breadcrumb // já sabe renderizar isso como texto, não link). $itensBreadcrumb = [ ['label' => 'Painel', 'rota' => route('admin.dashboard')], ['label' => 'Processo Legislativo', 'rota' => null], ['label' => 'Matérias', 'rota' => route('admin.materias.index')], ['label' => $materia?->exists ? ($materia->numero ?: 's/nº') . '/' . $materia->ano . ' — ' . $materia->titulo : 'Nova Matéria'], ]; @endphp @if($materia?->exists) {{-- EDIÇÃO — as 4 abas fazem sentido porque a matéria já existe: Protocolo/Tramitação/Histórico dependem de um id persistido (ver MateriaForm::protocolosVinculados()/linhaDoTempo(), que já retornam vazio quando $materia não existe — Etapa 2D não mudou essa regra, só decidiu ONDE mostrar cada uma). --}} @include('livewire.admin.partials.materia-dados')
Protocolo(s) vinculados @forelse($this->protocolosVinculados as $vinculado)
{{ $vinculado->labelPapelLegislativo() }} {{ $vinculado->tipo }} nº {{ $vinculado->numero ?: 's/nº' }}/{{ $vinculado->ano }}
{{ \Illuminate\Support\Str::limit($vinculado->assunto, 90) }}
Ver Protocolo @if($this->podeEditar) @endif
@empty

Nenhum protocolo vinculado ainda.

@endforelse {{-- Etapa 2H, item 9: busca/vínculo de protocolo escondida pra quem só tem leitura (backend já bloqueia via protegerEdicao() em vincularProtocolo()). --}} @if($this->podeEditar)

Use isso tanto pra vincular o protocolo de entrada quanto um protocolo de retorno do Executivo já cadastrado (só aparecem protocolos ainda sem matéria).

@if(mb_strlen(trim($buscaProtocolo)) >= 2)
@forelse($this->resultadosBuscaProtocolo as $resultado) @empty
Nenhum protocolo disponível pra "{{ $buscaProtocolo }}".
@endforelse
@endif @endif
{{-- Componente Livewire operacional já existente, só embutido aqui — nada da lógica dele foi tocado. x-show (não x-if) na aba: o nó fica sempre no DOM, só escondido por CSS quando a aba não está ativa, então o ciclo de vida/estado do Livewire nunca é destruído ao trocar de aba (ver relatório da Etapa 2D). --}}
Linha do tempo @if($this->linhaDoTempo->isNotEmpty())
@foreach($this->linhaDoTempo as $evento)
{{ \Illuminate\Support\Carbon::parse($evento['data'])->format('d/m/Y') }}
@if($evento['url']) {{ $evento['titulo'] }} @else {{ $evento['titulo'] }} @endif
@if($evento['descricao'])
{{ $evento['descricao'] }}
@endif
@endforeach
@else {{-- Antes da Etapa 2D este card inteiro ficava escondido quando vazio (pra não poluir uma página só de campos). Agora que é uma aba própria, faz mais sentido mostrar o estado vazio do que a aba simplesmente sumir — não é conteúdo novo, só a mensagem de "nada aqui ainda" que o forelse já usa em outras abas. --}}

Nenhum evento registrado ainda para esta matéria.

@endif
@else {{-- CRIAÇÃO — matéria ainda não existe, então Protocolo/Tramitação/ Histórico não têm a que se referir (dependem de um id persistido). Só Dados, sem nenhuma aba — não faria sentido mostrar 3 abas vazias/desabilitadas pra uma matéria que ainda não foi salva. --}} @include('livewire.admin.partials.materia-dados') @endif