refactor(cli): extract interactive menu into reusable module (#3)
Extract duplicate menu rendering logic from `index.ts` into a new `src/menu.ts` module, providing generic `selectOne` and `selectMany` functions. This reduces code duplication, improves maintainability, and adds consistent UI controls display across the commit flow and platform selection. Reviewed-on: #3
This commit was merged in pull request #3.
This commit is contained in:
@@ -60,10 +60,12 @@ gai --version Show version
|
||||
$ gai
|
||||
|
||||
gai
|
||||
Choose a workflow
|
||||
↑/↓ navigate · enter/space select · ctrl+c cancel
|
||||
|
||||
↑/↓ navigate, space/enter select
|
||||
|
||||
❯ ◉ commit Generate AI commit message
|
||||
❯ ● commit Generate AI commit message
|
||||
○ pr Create a PR with AI-generated title
|
||||
○ config Configure API settings
|
||||
```
|
||||
|
||||
### Commit Flow
|
||||
@@ -74,14 +76,13 @@ $ gai commit
|
||||
Staged files (will be included):
|
||||
✓ src/git.ts (modified)
|
||||
|
||||
Unstaged files:
|
||||
1. src/ai.ts (modified)
|
||||
2. src/newfile.ts (new)
|
||||
|
||||
Select files to stage:
|
||||
❯ ◉ Select all
|
||||
○ src/ai.ts (modified)
|
||||
◉ src/newfile.ts (new)
|
||||
2 unstaged files available
|
||||
↑/↓ navigate · space toggle · enter confirm · ctrl+c cancel
|
||||
|
||||
❯ □ Select all
|
||||
□ src/ai.ts modified
|
||||
■ src/newfile.ts new
|
||||
|
||||
Generating commit message...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user