keechma

Keechma stack. Mention @U050986L9 or @U2J1PHYNM if you have any questions
urbank 2017-08-07T07:50:23.641064Z

@mihaelkonjevic Oh, is confeedence using a different forms library than the one in the form repo?

urbank 2017-08-07T07:53:08.691065Z

Oh, never mind. Confused toolbox and forms

mihaelkonjevic 2017-08-07T08:30:34.436291Z

Toolbox has a new / different forms implementation

mihaelkonjevic 2017-08-07T08:31:05.448119Z

The original one is ok, but this one is much more integrated with keechma and has some additional features

mihaelkonjevic 2017-08-07T08:31:32.457399Z

I still need to document it, but we're using it in production for months and it's rock solid

urbank 2017-08-07T08:53:02.915395Z

@mihaelkonjevic So if I understand correctly forms are records which define how they get data and how they submit and such?

urbank 2017-08-07T11:22:30.808431Z

@mihaelkonjevic hm... so is it true that if the root component subscribes to the route of the app it will rerender anytime any part of the app changes? So if some row in a table changes the url to open a from (for example), all components which subscribe to route will rerender?

mihaelkonjevic 2017-08-07T11:27:43.892745Z

it will not rerender the whole app if that’s what you’re asking

mihaelkonjevic 2017-08-07T11:28:19.902269Z

because reagent is smart enough not to do that

mihaelkonjevic 2017-08-07T11:30:25.937450Z

it will probably re-render the virtual dom

mihaelkonjevic 2017-08-07T11:31:30.955407Z

but I had no performance problems with that, and I’ve implemented some weird excel / spreadsheet like functionality where each cell was bound to a route

urbank 2017-08-07T11:35:38.024301Z

Ok, I'll examine what I'm doing a bit. How many cells did your spreadsheet have? Did you use some kind of occlusion culling?

mihaelkonjevic 2017-08-07T11:40:37.107568Z

I think I was integrating with react-virtualized

mihaelkonjevic 2017-08-07T11:41:03.114608Z

so, the number of cells was dynamic - you could add columns dynamically, but it was in hundreds at least

mihaelkonjevic 2017-08-07T11:43:58.165226Z

and regarding the forms lib, you’re right it’s a record that defines how to get data, submit data, recover from errors, validate, etc…

mihaelkonjevic 2017-08-07T11:44:12.169386Z

interesting thing: most async actions can return pipelines

mihaelkonjevic 2017-08-07T11:44:28.173891Z

you can wait for dataloader to finish before getting the form data

mihaelkonjevic 2017-08-07T11:45:03.184170Z

this form has examples for both features https://github.com/retro/confeedence/blob/master/src/cljs/confeedence/forms/schedule.cljs#L64

urbank 2017-08-07T12:01:17.479930Z

Yeah, keechma seems to have great handling of async stuff. 🙂

urbank 2017-08-07T12:02:28.503564Z

Regarding the route, I suppose if the virtual-dom re-rendering were a problem, I could always define more granular subscriptions to specific parts of the route

mihaelkonjevic 2017-08-07T12:17:09.784657Z

yes, that’s how I’d do it

mihaelkonjevic 2017-08-07T12:17:25.789896Z

you can access the route data in app db under [:route :data]

👍 1