From c74f1749c814fc19557d7ceb37824929c5de275f Mon Sep 17 00:00:00 2001 From: charlie Date: Thu, 14 Mar 2024 14:36:37 +0800 Subject: [PATCH] enhance(ux): support enter key shortcut for the shui button --- deps/shui/src/logseq/shui/base/core.cljs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 deps/shui/src/logseq/shui/base/core.cljs diff --git a/deps/shui/src/logseq/shui/base/core.cljs b/deps/shui/src/logseq/shui/base/core.cljs new file mode 100644 index 000000000..ad2a1f06a --- /dev/null +++ b/deps/shui/src/logseq/shui/base/core.cljs @@ -0,0 +1,22 @@ +(ns logseq.shui.base.core + (:require [logseq.shui.util :as util] + [rum.core :as rum])) + +(def button-base (util/lsui-wrap "Button" {:static? false})) +(def link (util/lsui-wrap "Link")) + +;; Note: don't define component with rum/defc +;; to be compatible for the radix as-child option +(defn button + [& props-and-children] + (let [props (first props-and-children) + children (rest props-and-children) + on-key-up' (:on-key-up props) + children (if (map? props) children (cons props children)) + props (assoc (if (map? props) props {}) + :on-key-up (fn [^js e] + ;; TODO: return value + (when (fn? on-key-up') (on-key-up' e)) + (when (= "Enter" (.-key e)) + (some-> (.-target e) (.click)))))] + (apply button-base props children)))