This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-11-28
Channels
- # adventofcode (2)
- # announcements (4)
- # babashka (34)
- # beginners (44)
- # biff (5)
- # calva (8)
- # cider (4)
- # clj-kondo (5)
- # clj-on-windows (5)
- # clojure (57)
- # clojure-art (1)
- # clojure-denmark (2)
- # clojure-europe (40)
- # clojure-nl (1)
- # clojure-norway (6)
- # clojure-seattle (1)
- # clojure-uk (2)
- # clojurescript (20)
- # cursive (6)
- # datomic (1)
- # emacs (6)
- # events (5)
- # fulcro (22)
- # helix (5)
- # hyperfiddle (5)
- # jobs (1)
- # joyride (2)
- # lsp (8)
- # malli (8)
- # off-topic (30)
- # pathom (8)
- # pedestal (1)
- # portal (5)
- # proton (1)
- # rdf (2)
- # re-frame (4)
- # releases (1)
- # remote-jobs (1)
- # reveal (8)
- # xtdb (5)
How long did it take you and how many LOC
once I understood how to control the lifecycle of js object instances with missionary, 30 mins to impl demo, 3 mins to add to prod code
here’s the demo
(p/defn IntersectionObserverDemo []
(let [data (range)
!render-count (atom 50)
render-count (p/watch !render-count)]
(dom/div {:style {:height :200px :overflow :scroll}}
(let [obs (make-observer dom/node
(fn [t]
(swap! !render-count + 20)))]
(new (m/observe (fn [!]
(! nil)
#(j/call obs :disconnect))))
(p/for [c (take render-count (drop render-count data))]
(dom/div c))
(dom/div
(new (m/observe
(fn [!]
(! nil)
(j/call obs :observe dom/node)
#(j/call obs :unobserve dom/node))))
"Loading...")))))