From 4e5f2101df0024d02bcb6e8ec7ad0450b662a74e Mon Sep 17 00:00:00 2001 From: eraden Date: Tue, 12 Oct 2021 22:39:05 +0200 Subject: [PATCH] Extract events from create issue --- web/src/modals/issues_create/events.rs | 21 +++++++++++++++++++++ web/src/modals/issues_create/mod.rs | 1 + web/src/modals/issues_create/view.rs | 14 +++----------- 3 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 web/src/modals/issues_create/events.rs diff --git a/web/src/modals/issues_create/events.rs b/web/src/modals/issues_create/events.rs new file mode 100644 index 00000000..ac9ca017 --- /dev/null +++ b/web/src/modals/issues_create/events.rs @@ -0,0 +1,21 @@ +use seed::prelude::{ev, Ev, EventHandler}; + +use crate::modals::issues_create::Type; + +type EvHandler = EventHandler; + +pub fn on_click_submit_action(issue_type: Type) -> EvHandler { + ev(Ev::Click, move |ev| { + ev.stop_propagation(); + ev.prevent_default(); + Some(issue_type.submit_action()) + }) +} + +pub fn on_click_close_modal() -> EvHandler { + ev(Ev::Click, |ev| { + ev.stop_propagation(); + ev.prevent_default(); + Some(crate::Msg::ModalDropped) + }) +} diff --git a/web/src/modals/issues_create/mod.rs b/web/src/modals/issues_create/mod.rs index bc6b2959..d4365d7e 100644 --- a/web/src/modals/issues_create/mod.rs +++ b/web/src/modals/issues_create/mod.rs @@ -2,6 +2,7 @@ pub use model::*; pub use update::*; pub use view::*; +mod events; mod model; mod update; mod view; diff --git a/web/src/modals/issues_create/view.rs b/web/src/modals/issues_create/view.rs index b1cea4f0..c1b804dd 100644 --- a/web/src/modals/issues_create/view.rs +++ b/web/src/modals/issues_create/view.rs @@ -14,7 +14,7 @@ use crate::components::styled_select::{SelectVariant, StyledSelect}; use crate::components::styled_select_child::StyledSelectOption; use crate::components::styled_textarea::StyledTextarea; use crate::modals::epic_field; -use crate::modals::issues_create::{Model as AddIssueModal, Type}; +use crate::modals::issues_create::{events, Model as AddIssueModal, Type}; use crate::model::Model; use crate::shared::validate::Validator; use crate::{FieldId, Msg}; @@ -92,11 +92,7 @@ pub fn view(model: &Model, modal: &AddIssueModal) -> Node { variant: ButtonVariant::Primary, text: Some(issue_type.submit_label()), class_list: "action submit actionButton", - on_click: Some(mouse_ev(Ev::Click, move |ev| { - ev.stop_propagation(); - ev.prevent_default(); - Some(issue_type.submit_action()) - })), + on_click: Some(events::on_click_submit_action(issue_type)), ..Default::default() } .render() @@ -105,11 +101,7 @@ pub fn view(model: &Model, modal: &AddIssueModal) -> Node { variant: ButtonVariant::Empty, class_list: "action cancel actionButton", text: Some("Cancel"), - on_click: Some(mouse_ev(Ev::Click, |ev| { - ev.stop_propagation(); - ev.prevent_default(); - Some(Msg::ModalDropped) - })), + on_click: Some(events::on_click_close_modal()), ..Default::default() } .render();