From d01921cd611813628002e1032bd92f903493b404 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 27 Oct 2020 12:49:44 +0100 Subject: [PATCH] :sparkles: Allow enter to confirm dialog. --- frontend/src/app/main/ui/confirm.cljs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/ui/confirm.cljs b/frontend/src/app/main/ui/confirm.cljs index a36c677a4..d791de0f4 100644 --- a/frontend/src/app/main/ui/confirm.cljs +++ b/frontend/src/app/main/ui/confirm.cljs @@ -8,14 +8,17 @@ ;; Copyright (c) 2020 UXBOX Labs SL (ns app.main.ui.confirm + (:import goog.events.EventType) (:require + [rumext.alpha :as mf] + [goog.events :as events] [app.main.data.modal :as modal] [app.main.store :as st] [app.main.ui.icons :as i] + [app.main.ui.keyboard :as k] [app.util.dom :as dom] [app.util.i18n :as i18n :refer [tr t]] - [app.util.data :refer [classnames]] - [rumext.alpha :as mf])) + [app.util.data :refer [classnames]])) (mf/defc confirm-dialog {::mf/register modal/components @@ -52,6 +55,18 @@ (st/emit! (modal/hide)) (on-cancel props)))] + (mf/use-effect + (fn [] + (let [on-keydown + (fn [event] + (when (k/enter? event) + (do (dom/prevent-default event) + (dom/stop-propagation event) + (st/emit! (modal/hide)) + (on-accept props)))) + key (events/listen (dom/get-root) EventType.KEYDOWN on-keydown)] + #(events/unlistenByKey key)))) + [:div.modal-overlay [:div.modal-container.confirm-dialog [:div.modal-header