Skip to content

Listar Livros — Tarefas de Implementação

Gerado pelo Writer (Reversa) em 2026-05-11 doc_level: detalhado

Pré-requisitos

  • [ ] Schema SQLite com tabelas livro, editora, edicao_livro disponíveis
  • [ ] livrosAdapter e livrosSlice inicializados no store root
  • [ ] Rotas AppStack.Biblioteca e AppStack.Livro definidas no navigator

Tarefas

  • [ ] T-01 — Corrigir LivrosSelect.allIds para apontar para state.livros.ids
  • Origem no legado: src/store/Livros/Livros.selector.tsstatic readonly allIds = (it: RootState) => it.repertorios.ids
  • Critério de pronto: LivrosScreen exibe livros reais, não IDs de repertório
  • Confiança: 🔴 (bug confirmado)

  • [ ] T-02 — Implementar LivrosRepository.findAll() com JOIN livro + editora + edicao_livro

  • Origem no legado: src/repository/LivrosRepository.tsfindAllWithWhere
  • Critério de pronto: Retorna EdicaoLivro[] ordenado por titulo ASC, edicao ASC
  • Confiança: 🟢

  • [ ] T-03 — Implementar thunk LivrosAction.carregar com tratamento de erro

  • Origem no legado: src/store/Livros/Livros.action.tscarregar
  • Critério de pronto: Estado passa para FALHOU e UI exibe feedback quando o banco falha
  • Confiança: 🟢 (lógica existente; falta handler de rejected na UI)

  • [ ] T-04 — Implementar LivrosScreen com FlatList e LivroItemList

  • Origem no legado: src/view/screen/LivrosScreen.tsx
  • Critério de pronto: Lista renderiza itens com título, edição e editora; toque navega para AppStack.Livro
  • Confiança: 🟢

  • [ ] T-05 — Adicionar estado vazio com mensagem orientativa quando lista está vazia

  • Origem no legado: Não implementado — tela exibe lista vazia silenciosamente
  • Critério de pronto: Quando findAll retorna [], componente exibe mensagem "Nenhum livro disponível. Baixe uma obra na Biblioteca."
  • Confiança: 🟡

Tarefas de Teste

  • [ ] TT-01 — Teste do happy path: store carrega livros e FlatList exibe itens corretos
  • [ ] TT-02 — Teste de estado vazio: banco sem livros exibe mensagem orientativa
  • [ ] TT-03 — Teste de falha: erro no repositório mantém lista vazia e exibe toast de erro

Ordem Sugerida

  1. T-01 (bug crítico — bloqueia tudo)
  2. T-02 (base de dados)
  3. T-03 (store + thunk)
  4. T-04 (UI)
  5. T-05 (estado vazio — polish)

Lacunas Pendentes (🔴)

  • LivrosSelect.allIds retorna IDs de repertório — corrigir antes de qualquer implementação de UI
  • Não há estado vazio com mensagem — decisão de UX pendente