Fork me on GitHub
#fulcro
<
2020-04-12
>
tony.kay01:04:41

I just released an update to the master branch of the RAD demo. Known to work for Datomic per README instructions. I need to update the seed data…a number of the seeded entities do not validate, so when you load them they say they are invalid. Simply filling out the address and time zone will get it…There is another known bug: the time zone (autocomplete) control doesn’t show validation messages. Easy fix, just busy. Added a lot of stuff to reports today, and much of it isn’t in the demo yet. Subtle things like being able to route to different filters of a given report via links, report data caching, etc. A few styling add-ons as well. The list layout for reports has fallen behind, so don’t expect that to work well if you try it in reports.

👍 12
❤️ 12
Tuomas10:04:37

Hi, a newbie here having a hard time with dynamic routing. I’m routing to.

["products" :product/id]
in `:will-enter` I’m parsing the `:product/id`  and doing `route-immediate` (I have the data in the client database) with the correct ident. I can see the ident in `current-route` . The rendered component doesn’t have props. If I transact a mutation then a `:product/id null` entity is created and mutated. I’ve kept visiting http://book.fulcrologic.com/#_dynamic_router for a few days now and also revisited “Fulcro – Part 15: Sessions and UI Routing” video but can’t see what I’m doing wrong.

4
Tuomas11:04:45

Nvm the problem was that I was using fulcro tempids (doing a frontend only prototype). Works with numeric ids.

thosmos16:04:05

yeah for this reason I changed to a path like “product/new” with a route-deferred that generates the tempid and transacts a new record in the handler before calling target-ready!

folcon18:04:25

So I’ve been using oz (https://github.com/metasoarous/oz) a lot, and I’m wondering if it’s possible to keep using it with fulcro? Alternatively what are people doing instead? Just using vega/vega-lite directly? (just adding oz to deps.edn seems to blow up the shadow-cljs repl)

folcon18:04:05

This is specifically using the npx shadow-cljs server command. Startup:

shadow-cljs - config: /<path>/waw-app/shadow-cljs.edn
shadow-cljs - starting via "clojure"
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by dynapath.defaults$eval59163$fn__59164 to method .URLClassLoader.addURL(.URL)
WARNING: Please consider reporting this to the maintainers of dynapath.defaults$eval59163$fn__59164
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.apropos/wrap-apropos, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.classpath/wrap-classpath, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.complete/wrap-complete, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.debug/wrap-debug, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.enlighten/wrap-enlighten, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.format/wrap-format, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #', see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.inspect/wrap-inspect, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.macroexpand/wrap-macroexpand, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.spec/wrap-spec, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.ns/wrap-ns, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.out/wrap-out, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.pprint/wrap-pprint, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.pprint/wrap-pprint-fn, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.refresh/wrap-refresh, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.resource/wrap-resource, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.stacktrace/wrap-stacktrace, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.test/wrap-test, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.trace/wrap-trace, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.track-state/wrap-tracker, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.undef/wrap-undef, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl.middleware.version/wrap-version, see nrepl.middleware/set-descriptor!
shadow-cljs - HTTP server available at 
shadow-cljs - HTTP server available at 
shadow-cljs - server version: 2.8.80 running at 
shadow-cljs - nREPL server started on port 9000
Trying to connect remote repl:

folcon18:04:05

Exception in thread "nRepl-session-c1f9aeed-a8a6-4af4-916d-aa0ffa32351e" java.lang.IllegalArgumentException: No implementation of method: :send of protocol: #'nrepl.transport/Transport found for class: cider.nrepl.middleware.track_state$make_transport$reify__61245
        at clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:583)
        at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:575)
        at nrepl.transport$eval54263$fn__54264$G__54254__54271.invoke(transport.clj:16)
        at nrepl.middleware.print$send_nonstreamed.invokeStatic(print.clj:157)
        at nrepl.middleware.print$send_nonstreamed.invoke(print.clj:138)
        at nrepl.middleware.print$printing_transport$reify__54742.send(print.clj:174)
        at nrepl.middleware.caught$caught_transport$reify__54777.send(caught.clj:58)
        at nrepl.middleware.load_file$wrap_load_file$fn$reify__55007.send(load_file.clj:95)
        at nrepl.middleware.print$replying_PrintWriter$fn__54706.invoke(print.clj:115)
        at nrepl.middleware.print.proxy$.Writer$ff19274a.write(Unknown Source)
        at java.base/java.io.BufferedWriter.flushBuffer(BufferedWriter.java:120)
        at java.base/java.io.BufferedWriter.flush(BufferedWriter.java:256)
        at java.base/java.io.PrintWriter.flush(PrintWriter.java:396)
        at nrepl.middleware.interruptible_eval$evaluate.invokeStatic(interruptible_eval.clj:126)
        at nrepl.middleware.interruptible_eval$evaluate.invoke(interruptible_eval.clj:55)
        at nrepl.middleware.interruptible_eval$interruptible_eval$fn__54840$fn__54844.invoke(interruptible_eval.clj:142)
        at clojure.lang.AFn.run(AFn.java:22)
        at nrepl.middleware.session$session_exec$main_loop__55068$fn__55072.invoke(session.clj:171)
        at nrepl.middleware.session$session_exec$main_loop__55068.invoke(session.clj:170)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.lang.Thread.run(Thread.java:830)
^CRunning shutdown hook.

thheller18:04:47

looks like a dependency conflict of some sort

thheller18:04:22

which dep did you add?

folcon18:04:08

into deps.edn:

metasoarous/oz {:mvn/version "1.6.0-alpha6"}

thheller18:04:41

yikes .. that downloads half the internet

folcon18:04:29

It’s pretty fat

thheller18:04:22

yeah that has way too many unclean dependencies

thheller18:04:47

try excluding cider/cider-nrepl for starters

folcon19:04:01

Ok, that seems to import 😃… Thanks! I’ll have to see if it works as is or if I have to drop down into vega/vega-lite

mdhaney21:04:09

Isn’t oz just a reagent wrapper around vega, or is it more than that? Because if it’s just a reagent wrapper then I don’t see a lot of value to using it in Fulcro, unless you have existing stuff you just want to drop in. What would be more interesting is a set of Fulcro wrapper components everyone could use. Maybe oz has more stuff in it that would help that, dunno (I honestly hadn’t heard of it before you posted, and just skimmed the repo). Anyway, I’m interested to see what you do with it, and if it’s something that could be turned into a community library for Fulcro, because that would be awesome!

folcon22:04:18

It does do a little bit more, but basically that’s what it is. I’ve already got something working just wrapping the npm layer… I’m happy to package it up if that helps, is there any specific api that you’d like?

mdhaney22:04:18

@tony.kay would you prefer that the Datomic Cloud adapter be a separate adapter (not a separate repo, but a separate namespace which impacts RAD attribute keys), OR I think I might be able to make it so we use the same adapter and you specify in the configuration for each shard if it’s peer or cloud (defaulted to peer if the key is missing, for backward compatibility).