use official qlkit version

This commit is contained in:
kloimhardt 2021-06-08 21:44:31 +02:00
parent 2d1e751053
commit a376ffb66b
4 changed files with 20 additions and 13 deletions

View file

@ -5,14 +5,12 @@
borkdude/sci {:git/url "https://github.com/borkdude/sci"
:sha "a8505dd4ee0b5cc7e6f6215f1bbc136c6d4ae7ee"}
reagent/reagent {:mvn/version "1.0.0"}
cljsjs/create-react-class {:mvn/version "15.6.3-1"}
cljsjs/react {:mvn/version "17.0.2-0"}
cljsjs/react-dom {:mvn/version "17.0.2-0"}
cljsjs/react-dom-server {:mvn/version "17.0.2-0"}
cljsjs/create-react-class {:mvn/version "15.6.3-1"}
cljs-ajax/cljs-ajax {:mvn/version "0.8.3"}
qlkit/qlkit {:git/url "https://github.com/kloimhardt/qlkit"
:sha "fc925a96af4d5460470414ea9bab83ff0548fe62"}
}
qlkit/qlkit {:mvn/version "0.5.0-SNAPSHOT"}}
:aliases
{:dev

View file

@ -27,11 +27,4 @@
:build-hooks [(shadow.cljs.build-report/hook)]
:output-dir "resources/public/js"
:devtools {:repl-pprint true}
:compiler-options {:optimizations :advanced
:pseudo-names false}}}}
;; simple optimization because sablono.interpreter line 22
;; cljs: (.setState component next-state)
;; simple: a.setState(f)
;; advanced: a.Ci(f)
;; and this Ci throws a "not defined" error
:compiler-options {:externs ["src/scittle/qlkit-externs.js"]}}}}

View file

@ -0,0 +1,2 @@
var Component = {};
Component.setState = function () {};

View file

@ -5,8 +5,22 @@
(def qns (sci/create-ns 'qlkit.core nil))
;;directly copy-pasted from sourcecode of qlkit.core
(defn ^:macro defcomponent* [form env nam & bodies]
(apply ql/defcomponent+ form env nam bodies))
(doseq [[nam] bodies]
(when-not ('#{state query render component-did-mount component-will-unmount component-will-receive-props} nam)
(throw (ex-info (str "Unknown component member " nam) {}))))
`(let [key# (keyword ~(str (:name (:ns env))) ~(name nam))] ;;env is {} in scittle, thus (:ns env) is nil, thus component names are not namespaced names
(def ~nam key#)
(#'qlkit.core/add-class key#
~(into {:display-name (name nam)}
(for [[nam & more :as body] bodies]
(if ('#{state query} nam)
[(keyword nam)
(last more)]
[(keyword nam)
`(fn ~(first more)
~@(rest more))]))))))
(def qlkit-namespace
{'add-class (sci/copy-var ql/add-class qns)