diff --git a/src/bean/ui/events.cljs b/src/bean/ui/events.cljs index 83e5673..9904dc3 100644 --- a/src/bean/ui/events.cljs +++ b/src/bean/ui/events.cljs @@ -223,7 +223,7 @@ (fn [[el-id text]] (rc/after-render #(when-let [el (-> js/document (.getElementById el-id))] - (when text (set! (.-innerHTML el) text)) + (set! (.-innerHTML el) (or text "")) (.focus el) (.selectAllChildren (.getSelection js/window) el) (.collapseToEnd (.getSelection js/window)))))) @@ -231,10 +231,11 @@ (rf/reg-event-fx ::edit-cell (fn edit-cell [{:keys [db]} [_ rc text]] - (let [rc* (util/merged-or-self rc (:sheet db))] + (let [rc* (util/merged-or-self rc (:sheet db)) + content (get-in db (flatten [:sheet :grid rc* :content]))] {:db (assoc-in db [:ui :grid :editing-cell] rc*) :fx [[:dispatch [::set-selection {:start rc* :end (util/merged-until-or-self rc* (:sheet db))}]] - [::focus-element ["cell-input" text]]]}))) + [::focus-element ["cell-input" (or text content)]]]}))) (rf/reg-event-db ::clear-edit-cell diff --git a/src/bean/ui/views/sheet.cljs b/src/bean/ui/views/sheet.cljs index fb85eb2..a96e056 100644 --- a/src/bean/ui/views/sheet.cljs +++ b/src/bean/ui/views/sheet.cljs @@ -84,9 +84,7 @@ (defn- submit-cell-input [] (when-let [el (.getElementById js/document "cell-input")] - (rf/dispatch-sync [::events/submit-cell-input (str (.-textContent el))]) - ;; Reagent does not clear the element when input moves to a blank cell. - (set! (.-innerHTML el) nil))) + (rf/dispatch-sync [::events/submit-cell-input (str (.-textContent el))]))) (defn- selection->rect [^js g area row-heights col-widths] (when (:start area)