Stateless and stateful widgets
11 files changed
+221
-186
d54f20f1
→
a79608db
modified bin/commands/inbox/select.rs
@@ -14,12 +14,13 @@ use radicle::storage::git::Repository;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -280,7 +281,7 @@ impl App {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -297,7 +298,7 @@ impl App {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified bin/commands/inbox/select/ui.rs
@@ -15,13 +15,16 @@ use radicle_tui as tui;
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -116,10 +119,7 @@ pub struct BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -135,9 +135,9 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -150,7 +150,7 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -173,7 +173,7 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -184,10 +184,15 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -325,15 +330,9 @@ pub struct Search {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -343,7 +342,7 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -361,6 +360,11 @@ impl Widget for Search {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -425,10 +429,7 @@ pub struct HelpPage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -440,9 +441,9 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -454,7 +455,7 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -476,7 +477,7 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -498,9 +499,14 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified bin/commands/issue/select.rs
@@ -16,7 +16,7 @@ use tui::store::StateValue;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -199,7 +199,7 @@ impl App {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -216,7 +216,7 @@ impl App {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified bin/commands/issue/select/ui.rs
@@ -3,7 +3,8 @@ use std::collections::HashMap;
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -17,12 +18,13 @@ use radicle_tui as tui;
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -132,10 +134,7 @@ pub struct BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -146,16 +145,16 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -178,7 +177,7 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -189,10 +188,15 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -332,15 +336,9 @@ pub struct Search {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -350,7 +348,7 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -368,6 +366,11 @@ impl Widget for Search {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -432,10 +435,7 @@ pub struct HelpPage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -447,9 +447,9 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -461,7 +461,7 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -483,7 +483,7 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -505,9 +505,14 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified bin/commands/patch/select.rs
@@ -16,10 +16,7 @@ use tui::store;
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -201,10 +198,10 @@ impl App {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -221,7 +218,7 @@ impl App {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified bin/commands/patch/select/ui.rs
@@ -23,9 +23,9 @@ use tui::ui::widget::container::{
|
|
|
|
|
|
| - | |
|
|
|
|
| + | |
|
|
|
|
|
@@ -131,10 +131,7 @@ pub struct BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -145,16 +142,16 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -177,7 +174,7 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -188,10 +185,15 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -348,15 +350,9 @@ pub struct Search {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -366,7 +362,7 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -384,6 +380,11 @@ impl Widget for Search {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -448,10 +449,7 @@ pub struct HelpPage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -463,9 +461,9 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -477,7 +475,7 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -499,7 +497,7 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -521,9 +519,14 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified src/ui.rs
@@ -10,13 +10,16 @@ use std::fmt::Debug;
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -26,22 +29,14 @@ const INLINE_HEIGHT: usize = 20;
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -58,9 +53,9 @@ impl<A> Frontend<A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -74,17 +69,8 @@ impl<A> Frontend<A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
modified src/ui/widget.rs
@@ -40,11 +40,11 @@ pub trait Widget {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -99,6 +99,22 @@ pub trait Widget {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -169,14 +185,11 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -190,6 +203,14 @@ where
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -297,11 +318,11 @@ impl<S, A> Shortcuts<S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -311,6 +332,11 @@ impl<S, A> Widget for Shortcuts<S, A> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -525,14 +551,11 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -543,6 +566,14 @@ where
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified src/ui/widget/container.rs
@@ -11,7 +11,7 @@ use ratatui::widgets::{Block, BorderType, Borders, Row};
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -77,11 +77,8 @@ impl<'a, S, A> Header<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -91,6 +88,11 @@ impl<'a: 'static, S, A> Widget for Header<'a, S, A> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -254,11 +256,8 @@ impl<'a, S, A> Footer<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -268,6 +267,11 @@ impl<'a: 'static, S, A> Widget for Footer<'a, S, A> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -374,18 +378,11 @@ impl<S, A> Container<S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -395,6 +392,11 @@ impl<S, A> Widget for Container<S, A> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified src/ui/widget/input.rs
@@ -9,7 +9,7 @@ use ratatui::prelude::Rect;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -126,11 +126,8 @@ impl<S, A> TextField<S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -144,6 +141,11 @@ impl<S, A> Widget for TextField<S, A> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified src/ui/widget/text.rs
@@ -7,7 +7,7 @@ use termion::event::Key;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -141,11 +141,8 @@ impl<'a, S, A> Paragraph<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -162,6 +159,11 @@ impl<'a: 'static, S, A> Widget for Paragraph<'a, S, A> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|