@ghaskins I’d use/wrap react-bootstrap, which can be found on cljsjs (lein dep: [cljsjs/react-bootstrap “0.30.6-0”] )
@solussd ty, so far having decent luck with [cljs-react-material-ui "0.2.33"]
I’ve used that, too. 🙂
oh, cool..any thoughts on how it compares to react-bootstrap in terms of integration ease (obviously, the aethetics of the ui would be different)
so far, i've been happy though my impression so far is material-ui is more about the components/aethetics than it is about the full responsive framework like bootstrap
so, ive been augmenting the material ui components with flexbox
I really liked it. I don’t think there is a compelling reason to prefer bootstrap over it
ok
I haven’t used it w/ flexbox, but that sounds great
good to know
flexbox is pretty new to me
me too 😉
i only discovered it because the material-ui example used it and I realized there wasnt a grid baked in
I’m looking forward to using it in a mobile app (react-native)
cool...ill be sure to update my progress here
its going to be a FOSS project I am doing for a PTA
still WIP
Im currently using flexbox on the "home" view (https://github.com/mayopta/library-asset-tag/blob/master/src/cljs/library_asset_tag/ui/home.cljs)
cool
on a completely different subject, struggling to get the right combo of quote/unquote to invoke om/transact! from a different namespace than the reconciler
any best practices or examples out there?
e.g. (om/transact! core/reconciler `[(foo {:param ~param})])
i need to unquote param so its value is substituted, but leave "foo" undecorated so it matches the method dispatch in the core ns
i feel like I am poking in the dark, heh
so there must be something I am just missing
nm, i figured it out
@ghaskins would be interesting to see what you did there for my own edification
ill push my latest, easier to point to it
@samcf https://github.com/mayopta/library-asset-tag/blob/08b33f007cafe6fd0dd9f414055cd6b908887f99/src/cljs/library_asset_tag/ui/core.cljs#L39
easiest to describe like this
originally I had L25 as (defmethod mutate 'add-session-asset
and L39, similar name
but the problem is, with the quote/unquote syntax, that expanded to "library-asset-tag.ui.core/add-session-asset"
then I noticed that all the om-next examples used a different ns
e.g. https://github.com/omcljs/om/wiki/Components%2C-Identity-%26-Normalization#appendix
like 'points/increment
that was the hint I needed
basically, stupid pseudo newbie error on my part, but im drinking through the firehose
@ghaskins I would make a habit of using namespace-qualified symbols for mutation names
@solussd yeah, I can see that makes sense
if you ns-qualify things using a syntax quote, clojure won’t qualify them automatically.
i didnt pick up on that reading the om-next wiki the first time through
e.g., `[(app/blah {:thing ~value})]
:thumbsup:
hah, I just read the backlog here. I guess you had it all figured out before I commented
no worries, I appreciate any pointers
this framework is awesome, btw
kudos to the devs
🙂 I like it, but it does have a bit of a learning curve
yeah, though they all do to some respect..id much rather invest in one that lets me code sanely in clojure(script)
do you have any advice for the way to mutate a vector, like here: https://github.com/mayopta/library-asset-tag/blob/08b33f007cafe6fd0dd9f414055cd6b908887f99/src/cljs/library_asset_tag/ui/core.cljs#L30
I basically want to conj something to the :session-assets, im not quite clear on the (swap!) form
i know this is pure clojure, not om specific, but maybe someone has their head wrapped around it
I’ve found that it scales well w.r.t. adding features. UI, parsers, remote querying, and mutations aren’t conflated in the ways they are in other frameworks
that is my impression as well
i took on this simple project to learn the ins-and-outs without getting bogged down in a complicated design
I’d just do: (swap! state update-in [:some :key :path] conj thing-to-add)
cool, i saw update-in in the examples for something similar, i figured it was related
let me try that
swap!
will pass the current value of the state atom as the first arg to update-in
and update-in
will pass the value at the given keypath as the first arg to conj
goodluck- I’m out for the evening