Skip to content

Instantly share code, notes, and snippets.

@olivergeorge
Created March 23, 2015 04:46
Show Gist options
  • Save olivergeorge/3a3cf5d5a202c5a519fb to your computer and use it in GitHub Desktop.
Save olivergeorge/3a3cf5d5a202c5a519fb to your computer and use it in GitHub Desktop.
Snippet showing how I was planning to use a timeout channel to delay a possibly expensive resize operation.
(defn update-table-width [owner]
(let [autowidth (om/get-node owner "autowidth")
width (.-width (goog.style.getSize autowidth))]
(om/set-state! owner :width width)))
;(defn resize-engine
; "Sets up a core async loop to report on counters. Waits for 1 second of
; silence before reporting aggregates since last report."
; [owner resizing-ch]
; (go (loop [state :idle]
; (case state
; :idle (alt! resizing-ch (recur :active))
; :active (let [timeout-ch (timeout 15)]
; (alt! timeout-ch (do
; (update-table-width owner)
; (recur :idle))
; resizing-ch (do (recur :active))))))))
(defn keywordUUIDs [{:keys [value] :as field}]
(map :value value))
(defn TestThemeTable [props owner]
(reify
om/IDisplayName (display-name [_] "TestThemeTable")
om/IInitState (init-state [_]
{:columnWidths [28 150 200 200]
:isColumnResizing false
:query ""
;:resize-ch (chan)
:width 900})
om/IDidMount
(did-mount [_]
(let [vsm (goog.dom.ViewportSizeMonitor. )]
(goog.events.listen vsm goog.events.EventType.RESIZE #(update-table-width owner))
;(resize-engine owner resize-ch)
(update-table-width owner)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment