Radish alpha
r
Radicle terminal user interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
bin: Fix browser selection on search update
Erik Kundt committed 1 year ago
commit fe3580fba5f20e4b763854df4b12f0d4041d61e6
parent 645b961dfb778d96f65792c0eac507e742f2c7eb
6 files changed +21 -0
modified bin/commands/inbox/select.rs
@@ -238,6 +238,12 @@ impl store::State<Selection> for State {
                self.browser.filter = NotificationItemFilter::from_str(&self.browser.search.read())
                    .unwrap_or_default();

+
                if let Some(selected) = self.browser.selected {
+
                    if selected > self.browser.notifications().len() {
+
                        self.browser.selected = Some(0);
+
                    }
+
                }
+

                None
            }
            Message::ApplySearch => {
modified bin/commands/inbox/select/ui.rs
@@ -164,6 +164,7 @@ impl<'a: 'static> Widget for Browser<'a> {
                            TableProps::default()
                                .columns(props.columns)
                                .items(state.browser.notifications())
+
                                .selected(state.browser.selected)
                                .footer(!state.browser.show_search)
                                .page_size(state.browser.page_size)
                                .cutoff(props.cutoff, props.cutoff_after)
modified bin/commands/issue/select.rs
@@ -155,6 +155,12 @@ impl store::State<Selection> for State {
                self.browser.filter =
                    IssueItemFilter::from_str(&self.browser.search.read()).unwrap_or_default();

+
                if let Some(selected) = self.browser.selected {
+
                    if selected > self.browser.issues().len() {
+
                        self.browser.selected = Some(0);
+
                    }
+
                }
+

                None
            }
            Message::ApplySearch => {
modified bin/commands/issue/select/ui.rs
@@ -178,6 +178,7 @@ impl<'a: 'static> Widget for Browser<'a> {
                            TableProps::default()
                                .columns(props.columns)
                                .items(state.browser.issues())
+
                                .selected(state.browser.selected)
                                .footer(!state.browser.show_search)
                                .page_size(state.browser.page_size)
                                .cutoff(props.cutoff, props.cutoff_after)
modified bin/commands/patch/select.rs
@@ -156,6 +156,12 @@ impl store::State<Selection> for State {
                self.browser.filter =
                    PatchItemFilter::from_str(&self.browser.search.read()).unwrap_or_default();

+
                if let Some(selected) = self.browser.selected {
+
                    if selected > self.browser.patches().len() {
+
                        self.browser.selected = Some(0);
+
                    }
+
                }
+

                None
            }
            Message::ApplySearch => {
modified bin/commands/patch/select/ui.rs
@@ -178,6 +178,7 @@ impl<'a: 'static> Widget for Browser<'a> {
                            TableProps::default()
                                .columns(props.columns)
                                .items(state.browser.patches())
+
                                .selected(state.browser.selected)
                                .footer(!state.browser.show_search)
                                .page_size(state.browser.page_size)
                                .cutoff(props.cutoff, props.cutoff_after)