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_livrodisponíveis - [ ]
livrosAdapterelivrosSliceinicializados no store root - [ ] Rotas
AppStack.BibliotecaeAppStack.Livrodefinidas no navigator
Tarefas
- [ ] T-01 — Corrigir
LivrosSelect.allIdspara apontar parastate.livros.ids - Origem no legado:
src/store/Livros/Livros.selector.ts—static readonly allIds = (it: RootState) => it.repertorios.ids - Critério de pronto:
LivrosScreenexibe 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.ts—findAllWithWhere - Critério de pronto: Retorna
EdicaoLivro[]ordenado portitulo ASC, edicao ASC -
Confiança: 🟢
-
[ ] T-03 — Implementar thunk
LivrosAction.carregarcom tratamento de erro - Origem no legado:
src/store/Livros/Livros.action.ts—carregar - Critério de pronto: Estado passa para
FALHOUe UI exibe feedback quando o banco falha -
Confiança: 🟢 (lógica existente; falta handler de rejected na UI)
-
[ ] T-04 — Implementar
LivrosScreencomFlatListeLivroItemList - 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
findAllretorna[], 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
FlatListexibe 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
- T-01 (bug crítico — bloqueia tudo)
- T-02 (base de dados)
- T-03 (store + thunk)
- T-04 (UI)
- T-05 (estado vazio — polish)
Lacunas Pendentes (🔴)
LivrosSelect.allIdsretorna IDs de repertório — corrigir antes de qualquer implementação de UI- Não há estado vazio com mensagem — decisão de UX pendente