Skip to content

Listar Catálogo de Obras — Design Técnico

Gerado pelo Writer (Reversa) em 2026-05-11

Interface

BibliotecaApi.useGetItensObrasQuery(){ data: ObraItemListData[], isLoading, isError, refetch }

interface ObraItemListData {
  obra: Obra;
  situacao: SituacaoItemObra; // ATUALIZADA | NAO_BAIXADA | NAO_ATUALIZADA
}

Fluxo Principal

  1. Modal monta → BibliotecaApi.useGetItensObrasQuery() dispara queryFn
  2. Em paralelo: fetchWithBQ('/obras') + BibliotecaRepository.findExemplaresAtivos()
  3. Para cada Obra remota: calcula situacao por comparação de crc32 e presença de exemplar
  4. Filtra disponivel = false
  5. Retorna ObraItemListData[] para renderização

Dependências

  • BibliotecaRepository.findExemplaresAtivos — mapa de exemplares ativos
  • API remota /obras — catálogo de obras disponíveis

Riscos e Lacunas

  • 🟡 obra.crc32 = undefined resulta em NAO_ATUALIZADA potencialmente incorreto (ver EC-03 de edge-cases.md)
  • 🟡 refetch é chamado no useEffect de montagem — pode causar re-fetch desnecessário