{"action":"created","issue":{"url":"https://api.github.com/repos/jeluard/hipo/issues/19","labels_url":"https://api.github.com/repos/jeluard/hipo/issues/19/labels{/name}","comments_url":"https://api.github.com/repos/jeluard/hipo/issues/19/comments","events_url":"https://api.github.com/repos/jeluard/hipo/issues/19/events","html_url":"https://github.com/jeluard/hipo/issues/19","id":71825952,"number":19,"title":"create for update - question","user":{"login":"davesann","id":719090,"avatar_url":"https://avatars.githubusercontent.com/u/719090?v=3","gravatar_id":"","url":"https://api.github.com/users/davesann","html_url":"https://github.com/davesann","followers_url":"https://api.github.com/users/davesann/followers","following_url":"https://api.github.com/users/davesann/following{/other_user}","gists_url":"https://api.github.com/users/davesann/gists{/gist_id}","starred_url":"https://api.github.com/users/davesann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davesann/subscriptions","organizations_url":"https://api.github.com/users/davesann/orgs","repos_url":"https://api.github.com/users/davesann/repos","events_url":"https://api.github.com/users/davesann/events{/privacy}","received_events_url":"https://api.github.com/users/davesann/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-04-29T09:26:17Z","updated_at":"2015-06-02T17:47:07Z","closed_at":"2015-04-30T10:10:54Z","body":"Julien, I've been looking at your create for update capabilities. I have noted a couple of bugs, but I also have a larger question.\r\n\r\nI can raise the bugs separately but quickly\r\n  - there in one in flatten - which fails with the edge case (flatten [ :a () ]) - i.e. with an empty list in the children\r\n  - there is one on creation of new elements where a single insert uses the wrong element information (nth nch 0) instead of (nth nch oc).\r\n  - keyed children seems to key on index - but this is not what I would expect.\r\n  - I also noticed that you use if with no else rather than when forms which can make reading the code harder.\r\n\r\nLeaving that aside, there is a bigger question. The diff that you do is on the hiccup data produced by the render function. I think that the diff that react does is first on the input data - the props. IWillUpdate or something similar. in your case, from what I saw, I think that this means that the identical? checks that you do _always_ fail because the hiccup data is always different. To really speed things up I think you need to be checking if the input data has changed, not so much the output hiccup data. \r\n\r\nThoughts?\r\n\r\nDave\r\n"},"comment":{"url":"https://api.github.com/repos/jeluard/hipo/issues/comments/108028733","html_url":"https://github.com/jeluard/hipo/issues/19#issuecomment-108028733","issue_url":"https://api.github.com/repos/jeluard/hipo/issues/19","id":108028733,"user":{"login":"jeluard","id":359723,"avatar_url":"https://avatars.githubusercontent.com/u/359723?v=3","gravatar_id":"","url":"https://api.github.com/users/jeluard","html_url":"https://github.com/jeluard","followers_url":"https://api.github.com/users/jeluard/followers","following_url":"https://api.github.com/users/jeluard/following{/other_user}","gists_url":"https://api.github.com/users/jeluard/gists{/gist_id}","starred_url":"https://api.github.com/users/jeluard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeluard/subscriptions","organizations_url":"https://api.github.com/users/jeluard/orgs","repos_url":"https://api.github.com/users/jeluard/repos","events_url":"https://api.github.com/users/jeluard/events{/privacy}","received_events_url":"https://api.github.com/users/jeluard/received_events","type":"User","site_admin":false},"created_at":"2015-06-02T17:47:07Z","updated_at":"2015-06-02T17:47:07Z","body":"FYI I just fixed the key issue and it should now work as expected."}}