This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-09-08
Channels
- # admin-announcements (3)
- # bangalore-clj (3)
- # beginners (21)
- # boot (32)
- # cider (14)
- # clara (2)
- # cljs-dev (19)
- # cljsjs (8)
- # cljsrn (1)
- # clojars (1)
- # clojure (147)
- # clojure-australia (6)
- # clojure-brasil (8)
- # clojure-canada (2)
- # clojure-gamedev (3)
- # clojure-greece (2)
- # clojure-hk (5)
- # clojure-italy (10)
- # clojure-japan (8)
- # clojure-korea (4)
- # clojure-russia (25)
- # clojure-sg (2)
- # clojure-spec (36)
- # clojure-uk (34)
- # clojurescript (88)
- # cursive (157)
- # datomic (6)
- # devcards (1)
- # dirac (1)
- # editors-rus (3)
- # events (2)
- # funcool (1)
- # hoplon (57)
- # jobs (9)
- # lein-figwheel (2)
- # luminus (1)
- # om (156)
- # onyx (93)
- # perun (11)
- # rdf (65)
- # re-frame (36)
- # reagent (17)
- # ring-swagger (3)
- # specter (19)
- # untangled (33)
If you use clojure.spec for your annotations like in the example you also get test data generation for free. This means you can generate many valid inputs for any rendering function (including the root of your application) and repeatedly check it doesn’t break.
Коллеги, а снимите с ручника pls https://github.com/alexclear/odva/blob/master/src/odva/server.clj#L44 Чего-то у меня не печатается ничего В REPL когда печатаю то же самое - печатается WTF?
(doall (map …
ну или покороче но не так явно (mapv …
гайс, а где посмотреть примеры drag-and-drop в ClojureScript? Хочется без jquery
спасибо, это уже посмотрел
@olegakbarov может что-то конкретное тогда неясно?
не понимаю как заимплементить sortable list
Хочу после drag-start вешать обработчик на MOUSEMOVE и на основе этого двигать дивы, но это работает только с .preventDefault
(defn on-drag-start [e]
(.preventDefault e)
(events/listen js/window EventType.MOUSEMOVE
(mouse-move-handler))
(events/listen js/window EventType.MOUSEUP
(mouse-up-handler mouse-move-handler))
(set-cursor! "move")
(let [id (.-id (.-dataset (.-currentTarget e)))]
(reset! drag-id id)))
(defn on-drag-end [e]
(.preventDefault e)
(events/unlisten js/window EventType.MOUSEMOVE
mouse-move-handler))
типа взял див и начал ему место в списке искать? и чтобы все дивы двигались место уступали?
если делать preventDefault то пропадает сам айтем (картинку вставлять не хочу)
я так понял с превентДефолтом люди голый mousemove юзают и игнорируют html5 dnd api
спасибо
еще глупый вопрос: эти события (:on-drag-start и тд) — это реагент или hiccup? я чет ни там, ни там в сорсах не нашел
(defn allow-drop [e]
(.preventDefault e)) ;; because DnD in HTMl5 is crazy...
:draggable true ; -> otherwise the browser won't let you drag it
:on-drag-over allow-drop
:on-drag-enter allow-drop
:on-drag-start #(.setData (.-dataTransfer %) "text/plain" "") ;; for Firefox. You MUST set something as data.
:on-drag-end some-action
:on-drop some-other-action
реагент вроде макрой генерит, либо всё, что ты ему дашь, в какую-нибудь (kebab->camel-case) отдает и надеется на лучшее
Реагент берет мапу пропертей, конвертит их ипользуя util/dash-to-camel
функцию и отдает реакту. Дальше реакт смотрит на список поддерживаемых событий (https://facebook.github.io/react/docs/events.html#mouse-events) и если то, что сгенерилось (например onDrop) есть в списке - отдает на процессинг. Если опечататься - реагент ругаться не будет, реакт скорее всего тоже
есть правда одно исключение: когда работаешь с svg, там есть аттрибуты типа “xlink:href” - их надо по другому определять
спасибо!