diff --git a/frontend/src/app/main/ui/components/radio_buttons.cljs b/frontend/src/app/main/ui/components/radio_buttons.cljs index ae7d9dbab..6c7d3c73a 100644 --- a/frontend/src/app/main/ui/components/radio_buttons.cljs +++ b/frontend/src/app/main/ui/components/radio_buttons.cljs @@ -59,7 +59,7 @@ (mf/defc radio-buttons {::mf/props :obj} - [{:keys [children on-change selected class wide encode-fn decode-fn] :as props}] + [{:keys [children on-change selected class wide encode-fn decode-fn allow-empty] :as props}] (let [encode-fn (d/nilv encode-fn identity) decode-fn (d/nilv decode-fn identity) nitems (if (array? children) @@ -75,14 +75,17 @@ on-change' (mf/use-fn - (mf/deps on-change) + (mf/deps selected on-change) (fn [event] (let [input (dom/get-target event) value (dom/get-target-val event) - value (when (not= value selected) value)] + + ;; Only allow null values when the "allow-empty" prop is true + value (when (or (not allow-empty) + (not= value selected)) value)] (when (fn? on-change) - (on-change (decode-fn value) event) - (dom/blur! input))))) + (on-change (decode-fn value) event)) + (dom/blur! input)))) context-value (mf/spread-obj props {:on-change on-change' diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs index e7c5560f7..c818dc826 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/grid_cell.cljs @@ -48,6 +48,7 @@ [:div {:class (stl/css :self-align-menu)} [:& radio-buttons {:selected (d/name alignment) :on-change handle-set-alignment + :allow-empty true :name (dm/str "flex-align-items-" type)} [:& radio-button {:value "start" :icon (if is-col? i/align-self-row-left-refactor i/align-self-column-top-refactor)