   (re-matches #"\s*((0[,.]0*)|0|([1-9][0-9]*)([.,]0*)?)\s*" s))
 
 (defn int-editor
-  [row-data k change-fn _]
-  (let [initial-value (get row-data k)
+  [initial-row-data edited-row-data k change-fn _]
+  (let [initial-value (get edited-row-data k)
         input (reagent/atom (str initial-value))]
-    (fn [row-data k change-fn _]
+    (fn [initial-row-data edited-row-data k change-fn _]
       [:input.reabledit-cell-editor-input
        {:type "text"
         :class (if-not (int-coercable? @input)

                                       (js/parseInt new-input)
                                       initial-value)]
                       (reset! input new-input)
                       (change-fn (assoc row-data
                                         k
                                         new-value))))}])))


;;

(defn default-editor
  [_ edited-row-data k change-fn _]
  [:input.reabledit-cell-editor-input
   {:type "text"
    :auto-focus true
    :on-focus util/move-cursor-to-end!
    :value (get edited-row-data k)
    :on-change #(change-fn (assoc edited-row-data
                                  k
                                  (-> % .-target .-value)))}])

