Specify model values at React #309
Merged
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
Related #227
While working on the router, I verified that nextjs pushes some of the model information to the streaming.
Some of those value that we may want is the
dynamic paramsThe routing for example the initial payload is:
I propose to change the client_value to a clearer context, like Model.t and apply it to the model_value type, which can have several values, like List, Assoc, Json, Promise, Element.
We also need to change the render_model to receive the
React.model_valueinstead ofReact.element:Q: Why not use Json for list and assoc?
A: Cause those can be composed by others
model_values, while Json is only for YojsonQ: Why scope client_value in
Model.tA: We cannot have
| List : client_value list -> client_valueas it will conflict with the element typeReact.List. An alternative is to prefix it withModel_(Model_list) orClient_(Client_list), but it's meh.Error: Unbound type constructor React.client_value File "packages/react/src/React.ml", line 398, characters 2-44: 398 | | List : client_value list -> client_value ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error (warning 30 [duplicate-definitions]): the constructor List is defined in both types element and client_value.Question
Is it missing any type?