untangled

NEW CHANNEL: #fulcro
mitchelkuijpers 2017-01-18T09:02:04.002223Z

Soo, is anyone using untangled-components? Would really like to start using it for the forms stuff

2017-01-18T12:25:56.002224Z

I’ll try to integrate the forms component next week into our untangled project.

2017-01-18T12:27:19.002226Z

There is already a very good documentation and introduction as an devcard in the developer branch.

2017-01-18T12:30:49.002229Z

It’d be nice if the untangled team could publish the latest developer version as a SNAPSHOT to clojars. The latest published Version is from Oct 2016.

mitchelkuijpers 2017-01-18T15:17:47.002230Z

Yeah I checked the documentation out, but I will wait a bit longer till it is not snapshotted anymore. But there are some very nice ideas in there

tony.kay 2017-01-18T18:14:57.002235Z

hey there

tony.kay 2017-01-18T18:15:34.002236Z

@mitchelkuijpers @baris we have not published it because I got sidetracked on other important things. There are some rough edges that need cleaned up before the API is stable, I think

tony.kay 2017-01-18T18:15:49.002237Z

let me look real quick and refresh my memory...I'm wanting to use it too 😉

tony.kay 2017-01-18T18:17:56.002238Z

So, I'm willing to merge the current PR to develop and push a SNAPSHOT. Most of it will remain the way it is, but there may be some renaming of functions. I don't like some of the names and don't have time to deal with it at the moment.

tony.kay 2017-01-18T18:20:37.002239Z

OK, 0.1.0-SNAPSHOT of components is on clojars

tony.kay 2017-01-18T18:20:53.002240Z

Run/read the devcards forms_overview and forms_advanced

tony.kay 2017-01-18T18:21:19.002241Z

If anything is broken on those cards, assume it is a problem and report it. It is likely that the implementation changed and the card got left behind

tony.kay 2017-01-18T18:22:17.002242Z

The main recent add is that nested forms with recursive support for top-level reasoning was completed, along with a generic on-the-wire form submit (commit) was added that sends JUST the diffs of the entities (or the whole entity if it has a tempid)

tony.kay 2017-01-18T18:22:56.002243Z

you have to implement the server-side processing of that, but that should be pretty easy, since it basically tells you the ident (which can correspond to table/id) and the attrs that changed.

tony.kay 2017-01-18T18:24:18.002244Z

@adambros can chime in, but I don't think we've talked about doing anything that would cause major breakage if someone used it "as-is". I think mainly a bit of minor renaming, and possibly tuning up the specs

tony.kay 2017-01-18T18:24:52.002245Z

so fixing any code that depends on it when we stop snapshotting should be a few mins of work, and I can include the renames in the changelog

2017-01-18T18:42:08.002246Z

It’s Ok for me that there could be some renaming or so. I’m fine with that.

2017-01-18T18:42:24.002247Z

Thanks for shnapshotting and publishing @tony.kay

tony.kay 2017-01-18T19:20:01.002248Z

welcome

tony.kay 2017-01-18T21:15:05.002254Z

So, there is a performance bug in U.C., but unfortunately in order to fix it any applications that are improperly triggering post mutations may no longer render correctly (e.g. you could be lazy with the current bug, because it is forcing a root re-render). The proper behavior is for your loads to include a refresh-set of keys to re-render.

tony.kay 2017-01-18T21:15:45.002255Z

There is no way for me to fix this without causing potential unintentional breakage.

2017-01-18T21:33:22.002256Z

Is it only an performance bug in post mutations, or general performance improvement?

tony.kay 2017-01-18T21:34:48.002257Z

currently the internals are forcing a root rerender with a change to react-key if any post-mutations run

tony.kay 2017-01-18T21:35:13.002258Z

really, your loads should have refresh keys listed, and just those things should be re-rendered

tony.kay 2017-01-18T21:35:32.002259Z

It's just causing a full root-level react regen of the DOM

tony.kay 2017-01-18T21:35:47.002261Z

which is slow

2017-01-18T21:36:22.002262Z

Interesting. Wonder if that'd help improve our boot times (only place we use post-mutation)

tony.kay 2017-01-18T21:36:33.002263Z

possibly

tony.kay 2017-01-18T21:36:42.002264Z

how do you get away with no post-mutations elsewhere?

2017-01-18T21:38:32.002265Z

For the most part all of our data has a 1-1 mapping with what we get from datomic pulls, so we don't ever really have to do any post-processing of received data, and with Sente we receive updates for things we might otherwise clean up with post-mutations I guess?

tony.kay 2017-01-18T21:38:55.002266Z

nah...if your data already matches up, then it is easy

2017-01-18T21:39:55.002267Z

Yeah, we put a lot of effort into trying to make sure it's one-to-one for a pull query.

2017-01-18T21:40:23.002268Z

(well, pluck - https://github.com/AdStage/pluck-api - in our case, but that's just a bit of extra wrapper to simplify the read functions on the server side)

tony.kay 2017-01-18T21:45:43.002270Z

cool

tony.kay 2017-01-18T21:45:49.002271Z

so, it would not affect you