> It looks like this is a gap in kioo.  I support the react events in listen 
> but not the om events.  I need to create a wrap transform or add the om 
> protocol events to listen transform.  I will try to put something together 
> tonight and post an example of how to use it.

I look forward to trying it out.

One other question/problem while I'm doing this, I'm using the code you 
originally posted (custom-transform) and it works except for one problem; when 
I type any value, the cursor jumps to the end of the input field after the 
first character, so if you back arrow through the text and type something, 
after the first character, you're editing the end of the field.

So I'm doing:

(def form-data (atom {:name "your name" :address "an address"}))

;; odd i have to use local state and global state and keep them in sync 
manually...
(defn handle-change [e data edit-key owner]
  (om/transact! data edit-key (fn [_] (.. e -target -value)))
  (om/set-state! owner edit-key (.. e -target -value)))

(defn custom-transform [field data owner]
  (fn [node]
    (-> node
        #_(assoc-in [:attrs :value] (om/get-state owner field))
        (assoc-in [:attrs :onChange] #(handle-change % data field owner)))))

(defn form-app [data owner]
  (reify
    om/IInitState
    (init-state [_]
      {:name (:name data)
       :address (:address data)})

    om/IRenderState
    (render-state [_ state]
      (kioo/component
       "public/fragments/f1.html" [:#header]
       {[:input#name]
        (custom-transform :name data owner)}))))

(om/root form-app form-data {:target (. js/document (getElementById "main"))})

This appears to be because of the call to setting the :value in the 
custom-transform.
Without it, the cursor editing behaves correctly, but then I don't know how to 
initialise the field so it shows the initial value.

What's the best way to initialise a field to stop this behaviour?
I'm going to try adding an initialised flag in the component state and only run 
the [:attrs :value] if it's unset, which should initialise it, just wondered if 
there was a better way?

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to