renew: stage 2, 3 #26
Labels
No labels
bug
critical
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Reference
kir68k/lattice#26
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Focus: Scaffolding the UI
Notes
After the initial porting of the login flow from #19 (stage 1),
i should start writing the tui. To start with something, app struct should have a
statefield, which is an enum tracking the currently displayed tui page/view/screen/...I'll have to think about the ui design itself; whether it should be based on a main "view" and a tab bar (?) or something else. I kinda liked the gui layout, so I might try replicating it, or parts of it.
In any case,
src/view.rsshould be split into submodules, possibly per state (e.g.login.rs/loading.rsand such?).The tui will also require implementing
Tick,Input(KeyEvent), andShutdownmessages inhandle.rs.The tick simply draws the current view, according to the
state.For now rendering can occur per-tick, rather than on state changes, for simplicity.
I think the
runningfield onLatticecan be removed, I added it way earlier when I thought of just using a main + event loop, likewhile self.running { /* wait for any event like input, rendering tick, or app feature/functionality */ }.Progress
renew: stage 3 (smol enough to just be a comment)
Focus: Login UI
Notes
After having some initial structure for tui, i can add a login ui view. The most basic would be:
Enterkey input willlattice.tell(LoginRequested { .. })LoginFailedLoading.However it should preferably be a picker; three cards with title for login method + description string. This is because pw-based login isn't the only method I'll want to support. The two-input screen can just be selected instead.