{"action":"created","issue":{"url":"https://api.github.com/repos/joaomilho/act/issues/18","repository_url":"https://api.github.com/repos/joaomilho/act","labels_url":"https://api.github.com/repos/joaomilho/act/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/joaomilho/act/issues/18/comments","events_url":"https://api.github.com/repos/joaomilho/act/issues/18/events","html_url":"https://github.com/joaomilho/act/issues/18","id":162410322,"number":18,"title":"Add takeuntil to signals/processes","user":{"login":"pmros","id":166708,"avatar_url":"https://avatars.githubusercontent.com/u/166708?v=3","gravatar_id":"","url":"https://api.github.com/users/pmros","html_url":"https://github.com/pmros","followers_url":"https://api.github.com/users/pmros/followers","following_url":"https://api.github.com/users/pmros/following{/other_user}","gists_url":"https://api.github.com/users/pmros/gists{/gist_id}","starred_url":"https://api.github.com/users/pmros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pmros/subscriptions","organizations_url":"https://api.github.com/users/pmros/orgs","repos_url":"https://api.github.com/users/pmros/repos","events_url":"https://api.github.com/users/pmros/events{/privacy}","received_events_url":"https://api.github.com/users/pmros/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/joaomilho/act/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"joaomilho","id":308196,"avatar_url":"https://avatars.githubusercontent.com/u/308196?v=3","gravatar_id":"","url":"https://api.github.com/users/joaomilho","html_url":"https://github.com/joaomilho","followers_url":"https://api.github.com/users/joaomilho/followers","following_url":"https://api.github.com/users/joaomilho/following{/other_user}","gists_url":"https://api.github.com/users/joaomilho/gists{/gist_id}","starred_url":"https://api.github.com/users/joaomilho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joaomilho/subscriptions","organizations_url":"https://api.github.com/users/joaomilho/orgs","repos_url":"https://api.github.com/users/joaomilho/repos","events_url":"https://api.github.com/users/joaomilho/events{/privacy}","received_events_url":"https://api.github.com/users/joaomilho/received_events","type":"User","site_admin":false},"assignees":[{"login":"joaomilho","id":308196,"avatar_url":"https://avatars.githubusercontent.com/u/308196?v=3","gravatar_id":"","url":"https://api.github.com/users/joaomilho","html_url":"https://github.com/joaomilho","followers_url":"https://api.github.com/users/joaomilho/followers","following_url":"https://api.github.com/users/joaomilho/following{/other_user}","gists_url":"https://api.github.com/users/joaomilho/gists{/gist_id}","starred_url":"https://api.github.com/users/joaomilho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joaomilho/subscriptions","organizations_url":"https://api.github.com/users/joaomilho/orgs","repos_url":"https://api.github.com/users/joaomilho/repos","events_url":"https://api.github.com/users/joaomilho/events{/privacy}","received_events_url":"https://api.github.com/users/joaomilho/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/joaomilho/act/milestones/1","html_url":"https://github.com/joaomilho/act/milestones/1.0","labels_url":"https://api.github.com/repos/joaomilho/act/milestones/1/labels","id":1813337,"number":1,"title":"1.0","description":null,"creator":{"login":"joaomilho","id":308196,"avatar_url":"https://avatars.githubusercontent.com/u/308196?v=3","gravatar_id":"","url":"https://api.github.com/users/joaomilho","html_url":"https://github.com/joaomilho","followers_url":"https://api.github.com/users/joaomilho/followers","following_url":"https://api.github.com/users/joaomilho/following{/other_user}","gists_url":"https://api.github.com/users/joaomilho/gists{/gist_id}","starred_url":"https://api.github.com/users/joaomilho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joaomilho/subscriptions","organizations_url":"https://api.github.com/users/joaomilho/orgs","repos_url":"https://api.github.com/users/joaomilho/repos","events_url":"https://api.github.com/users/joaomilho/events{/privacy}","received_events_url":"https://api.github.com/users/joaomilho/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":1,"state":"open","created_at":"2016-06-07T12:48:37Z","updated_at":"2016-07-01T08:03:13Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2016-06-27T09:33:05Z","updated_at":"2016-07-04T06:17:22Z","closed_at":null,"body":"It would be nice if you add `takeuntil` to signals/proceses, like in rxjs, for example. \r\nI need `takeuntil` to manage drag and drop (svg has no drag and drop events support). The pseudo-code could be something like:\r\n```\r\nmousedown.flatmap(mousemove).takeuntil(mouseup)\r\n```\r\nI think it should be easy to code but I don't know much about signals/observables/streams implementation.\r\nThank you."},"comment":{"url":"https://api.github.com/repos/joaomilho/act/issues/comments/230213243","html_url":"https://github.com/joaomilho/act/issues/18#issuecomment-230213243","issue_url":"https://api.github.com/repos/joaomilho/act/issues/18","id":230213243,"user":{"login":"pmros","id":166708,"avatar_url":"https://avatars.githubusercontent.com/u/166708?v=3","gravatar_id":"","url":"https://api.github.com/users/pmros","html_url":"https://github.com/pmros","followers_url":"https://api.github.com/users/pmros/followers","following_url":"https://api.github.com/users/pmros/following{/other_user}","gists_url":"https://api.github.com/users/pmros/gists{/gist_id}","starred_url":"https://api.github.com/users/pmros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pmros/subscriptions","organizations_url":"https://api.github.com/users/pmros/orgs","repos_url":"https://api.github.com/users/pmros/repos","events_url":"https://api.github.com/users/pmros/events{/privacy}","received_events_url":"https://api.github.com/users/pmros/received_events","type":"User","site_admin":false},"created_at":"2016-07-04T06:17:22Z","updated_at":"2016-07-04T06:17:22Z","body":"I've been playing with Act and I've notice how easy is to create new signal processes! \r\n`takeUntil` signa process could be something like:\r\n```javascript\r\nconst takeUntil = curry((esStop, es, next) => {\r\n  let stop = false\r\n  esStop(() => stop = true)\r\n  es((value) => { if(!stop) next(value) })\r\n})\r\n```\r\nFor example, you can use it to create a custom subscription called positionUntilClick (something like positionThrottled from subscriptions/mouse). \r\nI'll add a pull request for takeUntil when I've created a test for it. Then you could close this issue. Later you could add higher level abstractions (like track).\r\n\r\nAnother useful signal process would be something like `takeBetween`. Pseudo-code for drag and drop:\r\n```\r\ntakeBeetween(merge(mousedown, mouseup), mousemove)\r\n```\r\n I'll try to add another pull request for `takeBeetween` too.\r\n\r\nThank you again.\r\n\r\n"}}
{"actor":{"display_login":"pmros"}}