Introduce base view
Every view has a base that all views share: a message sender, an update and an event callback.
8 files changed
+325
-413
73f29c94
→
956ca70f
modified bin/commands/inbox/select/ui.rs
@@ -21,10 +21,9 @@ use tui::ui::widget::container::{
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -108,14 +107,10 @@ impl<'a> From<&State> for BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -137,8 +132,12 @@ where
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -190,23 +189,15 @@ where
|
|
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -214,19 +205,19 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -240,7 +231,8 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -252,7 +244,8 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -264,7 +257,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -385,18 +378,20 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -425,37 +420,34 @@ impl<B: Backend> View<State, Action> for Search<B> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -499,14 +491,10 @@ pub struct HelpPage<'a, B>
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -522,7 +510,11 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -583,38 +575,30 @@ where
|
|
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -646,7 +630,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified bin/commands/issue/select/ui.rs
@@ -18,15 +18,14 @@ use radicle_tui as tui;
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
| + | |
|
|
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -122,15 +121,11 @@ impl<'a> From<&State> for BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -146,8 +141,12 @@ where
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -193,23 +192,15 @@ where
|
|
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -217,19 +208,19 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -241,7 +232,8 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -257,7 +249,8 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -269,7 +262,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -280,7 +273,7 @@ impl<'a, B: Backend> BrowsePage<'a, B> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -404,18 +397,20 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -444,37 +439,34 @@ impl<B: Backend> View<State, Action> for Search<B> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -518,14 +510,10 @@ pub struct HelpPage<'a, B>
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -541,7 +529,11 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -602,38 +594,30 @@ where
|
|
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -665,7 +649,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified bin/commands/patch/select/ui.rs
@@ -19,16 +19,15 @@ use radicle_tui as tui;
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
|
|
| + | |
|
|
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -123,15 +122,11 @@ impl<'a> From<&State> for BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -147,7 +142,11 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -194,23 +193,15 @@ where
|
|
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -218,19 +209,19 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -242,7 +233,8 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -258,7 +250,8 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -274,7 +267,8 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -286,7 +280,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -431,18 +425,20 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -471,37 +467,34 @@ impl<B: Backend> View<State, Action> for Search<B> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -545,14 +538,10 @@ pub struct HelpPage<'a, B>
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -568,7 +557,11 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -629,38 +622,30 @@ where
|
|
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -692,7 +677,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui.rs
@@ -97,7 +97,7 @@ impl<A> Frontend<A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui/widget.rs
@@ -23,6 +23,16 @@ pub type BoxedWidget<B, S, A> = Box<dyn Widget<B, S, A>>;
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -34,14 +44,22 @@ pub trait View<S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -51,11 +69,14 @@ pub trait View<S, A> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -83,7 +104,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -138,14 +159,10 @@ pub struct Window<B, S, A, Id>
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -172,27 +189,22 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -205,7 +217,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -213,7 +225,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -277,12 +289,8 @@ impl Properties for ShortcutsProps {}
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -305,28 +313,24 @@ impl<S, A> Shortcuts<S, A> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -473,14 +477,10 @@ pub struct Table<'a, S, A, R>
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -546,27 +546,23 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -576,7 +572,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -601,8 +597,8 @@ where
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -614,7 +610,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui/widget/container.rs
@@ -11,7 +11,7 @@ use ratatui::widgets::{Block, BorderType, Borders, Row};
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -52,15 +52,11 @@ impl<'a> Default for HeaderProps<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -84,33 +80,30 @@ impl<'a, S, A> Header<'a, S, A> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -217,14 +210,10 @@ impl<'a> Default for FooterProps<'a> {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -248,33 +237,30 @@ impl<'a, S, A> Footer<'a, S, A> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -368,14 +354,10 @@ pub struct Container<B, S, A>
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -413,29 +395,26 @@ where
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -450,9 +429,9 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui/widget/input.rs
@@ -9,7 +9,7 @@ use ratatui::prelude::{Backend, Rect};
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -56,14 +56,10 @@ pub struct TextFieldState {
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -133,10 +129,12 @@ impl<S, A> TextField<S, A> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
@@ -144,18 +142,12 @@ impl<S, A> View<S, A> for TextField<S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -167,7 +159,7 @@ impl<S, A> View<S, A> for TextField<S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -188,8 +180,8 @@ impl<S, A> View<S, A> for TextField<S, A> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
modified src/ui/widget/text.rs
@@ -8,7 +8,7 @@ use ratatui::backend::Backend;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -60,14 +60,10 @@ pub struct ParagraphState {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -152,10 +148,12 @@ impl<'a: 'static, S, A> View<S, A> for Paragraph<'a, S, A> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
@@ -163,22 +161,16 @@ impl<'a: 'static, S, A> View<S, A> for Paragraph<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -204,8 +196,8 @@ impl<'a: 'static, S, A> View<S, A> for Paragraph<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|