A luxuriously simple and powerful way to make front-ends with DataScript and Reagent in Clojure.
pull
is more efficient than q
, so you might be able to get away with a large ui if you use mostly pulls.
hey @mpdairy first of all thanks for the great work that you have done with posh !! that is definitely the missing piece in reactive programming that I was looking for.
I just started working with it and got some errors using pull
. I checked the source code and Cursive
showed me that there are three functions used with less than their declared arguments; namely
posh.plugin-base/missing-pull-result
line 20 and 22posh.plugin-base/get-db
line 127object[TypeError TypeError: null is not an object (evaluating 'new cljs.core.Keyword(null,"conn?","conn?",167224275).cljs$core$IFn$_invoke$arity$1(dcfg).call')]
posh$plugin_base$get_db
cljs$core$IFn$_invoke$arity$5
posh$plugin_base$pull
cljs$core$IFn$_invoke$arity$4
G__10589__3
G__10589
eval code
eval@[native code]
figwheel$client$utils$eval_helper
Since I just started working with posh, I am not sure if this is a problem with my configuration or an actual bug in the implementation, so I wanted to ask you first. I am happy to submit a PR to fix that if you want.
travis ci
for one of my projects. I didnt setup the auto deploy myself but I think that the file is pretty self-explanatory. The only things that you would need to change are the your encripted env vars and your release config in project.clj
. Links below
(reg-query-sub
:cur-form-def
'[:find (pull ?e [*])
:in $
:where
[_ :designer/cur-form-id ?id]
[?e :form/id ?id]
])
[:code (pr-str @conn)]
inside my root component re-render on every db change?
debug-conn
here will work. Haven’t really stress tested it though might just be getting lucky. If you want to be more efficient you could rig up a listen!
on the conn.
build-defc
from rum, but couldn't get that to work either.
pull-all
in posh? I'm trying to write a pull-all version of this: https://github.com/denistakeda/re-posh/blob/master/src/re_posh/subs.cljc#L16p/pull
gives errors. I suspect because it returns a reaction
(which I don't really understand yet).
deref
after each individual pull (add it to your mapping function). This will give the value for the reaction. You may need to wrap the whole thing in a reagent.core/make-reaction
function if re-posh isn't doing that automatically where you are calling the derefs.
okay! So, I'm starting out with dat[ascript|omic] for the first time via re-posh and it's terrifying! I don't know how doing things works :sweat_smile: :
okay, so I have the following value in my app-db:
@re-frame.db/app-db
=> [{:db/id -1, :app/type :type/account, :account/balance 800}]
and I made a subscription like so:
(rp/reg-sub
:account-balance-id
(fn [_ _]
{:type :query
:query '[:find ?id .
:where [?id :app/type :type/account]]}))
:find ?id .
is for. I just copied it from the todomvc