{"action":"created","issue":{"url":"https://api.github.com/repos/ocsigen/eliom/issues/411","repository_url":"https://api.github.com/repos/ocsigen/eliom","labels_url":"https://api.github.com/repos/ocsigen/eliom/issues/411/labels{/name}","comments_url":"https://api.github.com/repos/ocsigen/eliom/issues/411/comments","events_url":"https://api.github.com/repos/ocsigen/eliom/issues/411/events","html_url":"https://github.com/ocsigen/eliom/issues/411","id":186315211,"number":411,"title":"Serverside Eliom_shared.React.S interface is partial, and therefore less useable","user":{"login":"rand00","id":7547836,"avatar_url":"https://avatars.githubusercontent.com/u/7547836?v=3","gravatar_id":"","url":"https://api.github.com/users/rand00","html_url":"https://github.com/rand00","followers_url":"https://api.github.com/users/rand00/followers","following_url":"https://api.github.com/users/rand00/following{/other_user}","gists_url":"https://api.github.com/users/rand00/gists{/gist_id}","starred_url":"https://api.github.com/users/rand00/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rand00/subscriptions","organizations_url":"https://api.github.com/users/rand00/orgs","repos_url":"https://api.github.com/users/rand00/repos","events_url":"https://api.github.com/users/rand00/events{/privacy}","received_events_url":"https://api.github.com/users/rand00/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2016-10-31T15:34:46Z","updated_at":"2016-10-31T15:54:35Z","closed_at":null,"body":"I've found myself needing to switch away from server-side defined reactive signals and nodes, as the server-side `Eliom_shared.React.S` interface is partial compared to `React.S` (in contrast to the client-side version). \r\n* http://ocsigen.org/eliom/5.0/api/server/Eliom_shared_sigs.S\r\n* http://ocsigen.org/eliom/5.0/api/client/Eliom_shared.React.S\r\n\r\nAs the stated point of shared reactive programming is to have a predefined page based on the initial values of signals, I can't think of an obvious declarative way of both getting to use the full React.S interface while using this design. \r\nAlso, the event module `E` is not defined neither on serverside - this on the other hand makes sense, but makes parts of the `S` interface needing to depend on a fake `E` module, e.g. for `S.hold`, `S.sample` etc. \r\n\r\nI can see an argument for having a page partially defined from server-side signals, and partially from client-side signals (which could depend on the server-side ones) - and then for the client-side only signals, one would get the full interface. But if one needs the full React.S interface, this would mean any of the following:\r\n* reactive nodes defined from serverside signals need to (imperatively) be deleted once on client-side and reinserted.\r\n* reactive nodes defined serverside wrapped in `C.node` will not deliver an initial value for that part of the page.\r\n\r\nBoth points goes directly agains Eliom_shared.React 's + FRP's goals.. \r\n\r\n**Edit:** And the first point would have un-used signals running. \r\n"},"comment":{"url":"https://api.github.com/repos/ocsigen/eliom/issues/comments/257333262","html_url":"https://github.com/ocsigen/eliom/issues/411#issuecomment-257333262","issue_url":"https://api.github.com/repos/ocsigen/eliom/issues/411","id":257333262,"user":{"login":"rand00","id":7547836,"avatar_url":"https://avatars.githubusercontent.com/u/7547836?v=3","gravatar_id":"","url":"https://api.github.com/users/rand00","html_url":"https://github.com/rand00","followers_url":"https://api.github.com/users/rand00/followers","following_url":"https://api.github.com/users/rand00/following{/other_user}","gists_url":"https://api.github.com/users/rand00/gists{/gist_id}","starred_url":"https://api.github.com/users/rand00/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rand00/subscriptions","organizations_url":"https://api.github.com/users/rand00/orgs","repos_url":"https://api.github.com/users/rand00/repos","events_url":"https://api.github.com/users/rand00/events{/privacy}","received_events_url":"https://api.github.com/users/rand00/received_events","type":"User","site_admin":false},"created_at":"2016-10-31T15:54:35Z","updated_at":"2016-10-31T15:54:35Z","body":"Do I get an initial value if client doesn't have JS with C.node?"}}
{"actor":{"display_login":"rand00"}}