{"action":"created","issue":{"url":"https://api.github.com/repos/gaearon/react-dnd/issues/111","labels_url":"https://api.github.com/repos/gaearon/react-dnd/issues/111/labels{/name}","comments_url":"https://api.github.com/repos/gaearon/react-dnd/issues/111/comments","events_url":"https://api.github.com/repos/gaearon/react-dnd/issues/111/events","html_url":"https://github.com/gaearon/react-dnd/pull/111","id":60279570,"number":111,"title":"Use DnD-core","user":{"login":"nelix","id":33324,"avatar_url":"https://avatars.githubusercontent.com/u/33324?v=3","gravatar_id":"","url":"https://api.github.com/users/nelix","html_url":"https://github.com/nelix","followers_url":"https://api.github.com/users/nelix/followers","following_url":"https://api.github.com/users/nelix/following{/other_user}","gists_url":"https://api.github.com/users/nelix/gists{/gist_id}","starred_url":"https://api.github.com/users/nelix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nelix/subscriptions","organizations_url":"https://api.github.com/users/nelix/orgs","repos_url":"https://api.github.com/users/nelix/repos","events_url":"https://api.github.com/users/nelix/events{/privacy}","received_events_url":"https://api.github.com/users/nelix/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/gaearon/react-dnd/milestones/7","html_url":"https://github.com/gaearon/react-dnd/milestones/0.10","labels_url":"https://api.github.com/repos/gaearon/react-dnd/milestones/7/labels","id":1001019,"number":7,"title":"0.10","description":"","creator":{"login":"gaearon","id":810438,"avatar_url":"https://avatars.githubusercontent.com/u/810438?v=3","gravatar_id":"","url":"https://api.github.com/users/gaearon","html_url":"https://github.com/gaearon","followers_url":"https://api.github.com/users/gaearon/followers","following_url":"https://api.github.com/users/gaearon/following{/other_user}","gists_url":"https://api.github.com/users/gaearon/gists{/gist_id}","starred_url":"https://api.github.com/users/gaearon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gaearon/subscriptions","organizations_url":"https://api.github.com/users/gaearon/orgs","repos_url":"https://api.github.com/users/gaearon/repos","events_url":"https://api.github.com/users/gaearon/events{/privacy}","received_events_url":"https://api.github.com/users/gaearon/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":1,"state":"open","created_at":"2015-03-02T00:28:03Z","updated_at":"2015-03-09T12:31:19Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2015-03-08T22:20:43Z","updated_at":"2015-03-09T12:58:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/gaearon/react-dnd/pulls/111","html_url":"https://github.com/gaearon/react-dnd/pull/111","diff_url":"https://github.com/gaearon/react-dnd/pull/111.diff","patch_url":"https://github.com/gaearon/react-dnd/pull/111.patch"},"body":"We're ready to go ahead with this.\r\ndnd-core already has everything we need except for `over` hook which we'll add soon.\r\n\r\nThings to be considered:\r\n\r\n- [ ] How do we change drag source / target API?\r\n  - [ ] We want to remove `enter` and `leave`\r\n  - [ ] We want to rename `over` to `dragOver`\r\n  - [ ] Do we really want drag source / drop target API to differ from dnd-core? In some ways, it should differ because we want to be able to specify things like `dragPreview` that are specific to React DnD. Instead of passing `context` and `handle`, we want hooks to accept `context` and `component`, etc. So they're clearly not the same thing. How are they constructed? dnd-core prefers classes (or rather makes them easy to work with), React DnD currently uses plain objects. We need to decide that. We'll probably stick with wrapping sources/targets provided to React DnD into some dnd-core style wrappers before passing them to dnd-core. Similarly, `context` passed by React DnD to hooks will likely wrap dnd-core's context.\r\n  - [ ] Exotic things like `dragPreview`, `effectsAllowed`, etc. I need them to work (I actually use them). Need to figure out the right API for them.\r\n - [ ] How many `collect*` methods do we need? Is it possible to pass them to mixin in its declaration instead of defining them on component? Can we do the same for registration?\r\n- [ ] Support native drag sources\r\n- [ ] How do we solve coordinate tracking? See https://github.com/gaearon/dnd-core/issues/6 for thoughts on this. We might come back to this when everything else is ready.\r\n\r\nOverall the right course is to start from scratch and make examples work, from the simplest one to more complex ones."},"comment":{"url":"https://api.github.com/repos/gaearon/react-dnd/issues/comments/77848299","html_url":"https://github.com/gaearon/react-dnd/pull/111#issuecomment-77848299","issue_url":"https://api.github.com/repos/gaearon/react-dnd/issues/111","id":77848299,"user":{"login":"gaearon","id":810438,"avatar_url":"https://avatars.githubusercontent.com/u/810438?v=3","gravatar_id":"","url":"https://api.github.com/users/gaearon","html_url":"https://github.com/gaearon","followers_url":"https://api.github.com/users/gaearon/followers","following_url":"https://api.github.com/users/gaearon/following{/other_user}","gists_url":"https://api.github.com/users/gaearon/gists{/gist_id}","starred_url":"https://api.github.com/users/gaearon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gaearon/subscriptions","organizations_url":"https://api.github.com/users/gaearon/orgs","repos_url":"https://api.github.com/users/gaearon/repos","events_url":"https://api.github.com/users/gaearon/events{/privacy}","received_events_url":"https://api.github.com/users/gaearon/received_events","type":"User","site_admin":false},"created_at":"2015-03-09T12:58:51Z","updated_at":"2015-03-09T12:58:51Z","body":"To clarify this work: we want to reimplement the examples with vanilla core-dnd, and *then* figure out which parts should be extracted into React DnD (most probably HTML5 quirk handling, some state helper mixin or component). We will definitely offer both a mixin and some easy way to use this from ES6 classes."}}