fulcro-rad-carbon/src/main/com/fulcrologic/rad/rendering/semantic_ui/decimal_field.cljc

16 lines
715 B
Clojure

(ns com.fulcrologic.rad.rendering.semantic-ui.decimal-field
(:require
[com.fulcrologic.fulcro.components :as comp]
[com.fulcrologic.fulcro.dom.inputs :as inputs]
[clojure.string :as str]
[com.fulcrologic.rad.rendering.semantic-ui.field :refer [render-field-factory]]
[com.fulcrologic.rad.type-support.decimal :as math]))
(def ui-decimal-input
(comp/factory (inputs/StringBufferedInput ::DecimalInput
{:model->string (fn [n] (if (math/numeric? n) (math/numeric->str n) ""))
:string->model (fn [s] (math/numeric s))
:string-filter (fn [s] (str/replace s #"[^\d.]" ""))})))
(def render-field (render-field-factory {} ui-decimal-input))