feat: add back navigation, review step, and error retry to TUI
Implements three UX improvements (TODO #1–#3): - Back navigation: Esc returns to the previous input step. The Model keeps a history stack of input steps (advance/goBack helpers); action/wait steps are excluded via isInputStep so back never re-enters a side-effecting step. Form values are preserved. - Review step (StepReview): shows all collected config for confirmation before any file is written; Enter installs, Esc edits. - Retry vs. fix: transient failures (image pull, container run) offer "r: tentar novamente" instead of quitting; validation failures route back to the relevant form to correct the value. Adds nav_test.go for the history/navigation logic and updates README/CLAUDE/docs (incl. docs/TODO.md tracking the remaining ideas). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+17
-3
@@ -21,9 +21,23 @@ executadas em segundo plano. As etapas são definidas em
|
||||
| 11 | `StepServerConfig` | Formulário do servidor (porta, timeout, ambiente, compatibilidade). |
|
||||
| 12 | `StepDatabaseConfig` | Formulário do banco de dados. |
|
||||
| 13 | `StepCertConfig` | Formulário do diretório de certificados. |
|
||||
| 14 | `StepGenerateFile` | Gera o `config.toml`. |
|
||||
| 15 | `StepRunDocker` | Sobe o container `app-dono-cliente`. |
|
||||
| 16 | `StepDone` | Mensagem de sucesso. |
|
||||
| 14 | `StepReview` | Revisão de todas as configurações antes de instalar. |
|
||||
| 15 | `StepGenerateFile` | Gera o `config.toml`. |
|
||||
| 16 | `StepRunDocker` | Sobe o container `app-dono-cliente`. |
|
||||
| 17 | `StepDone` | Mensagem de sucesso. |
|
||||
|
||||
## Navegação e tratamento de erros
|
||||
|
||||
- **Voltar (`Esc`):** retorna à etapa de entrada anterior (formulários, pergunta de IP
|
||||
e revisão). O `Model` mantém uma pilha `history` de etapas; etapas de ação (downloads,
|
||||
geração de arquivo, subida de container) ficam de fora e não são reexecutadas ao
|
||||
voltar. Os valores já digitados nos formulários são preservados.
|
||||
- **Revisão (`StepReview`):** antes de gravar qualquer arquivo, todas as configurações
|
||||
coletadas são exibidas para confirmação. `Enter` confirma e gera o `config.toml`;
|
||||
`Esc` volta ao formulário anterior para editar.
|
||||
- **Tentar novamente:** falhas transitórias (download de imagem, subida de container)
|
||||
oferecem `r` para reexecutar apenas aquele passo (`q` sai). Erros de validação
|
||||
(geração de arquivo) levam de volta ao formulário correspondente para correção.
|
||||
|
||||
## Detalhamento
|
||||
|
||||
|
||||
Reference in New Issue
Block a user