-
Notifications
You must be signed in to change notification settings - Fork 1
Redux Store
Egor Stambakio edited this page Jun 1, 2018
·
1 revision
Every view must have "ready" status defined in its constants.js file for onTransition call to work properly.
{
common: {
activeViewName: <"search"|"create"|"edit"|"show"|"error">,
},
views: {
search: {
/*
* filter used in Search Result
*/
resultFilter: {
<field name>: <serializable, filter value for the field>,
...
},
/*
* raw filter as displayed in Search Form
* (may be equal to or different from "resultFilter")
*/
formFilter: {
<field name>: <serializable, filter value for the field>,
...
},
/*
* raw filter as communicated to React Components rendering Search fields
*/
formatedFilter: {
<field name>: <serializable, filter value for the field formated to corresponding UI Type>,
...
},
sortParams: {
field: <string, sort field name>,
order: <"asc"|"desc", sort order>,
},
pageParams: {
max: <natural number, search result limit>,
offset: <whole number, search result offset>,
}
resultInstances: [{
<field name>: <serializable, field value>,
...
}, ...],
selectedInstances: [
<ref, reference to an object from "instances" array>,
...
],
totalCount: <whole number, total number of filtered entity instances>,
status: <"uninitialized"|"initializing"|"ready"|"searching"|"deleting"|"redirecting", search view status>,
/*
* Parsing and Internal Errors -- see relevant subheadings
* (all other errors are displayed on "error" view)
*/
errors: {
fields: {
<field name>: [<Parsing Error>, ...],
...
},
general: [<Internal Error>, ...]
}
},
create: {
formInstance: {
<field name>: <serializable, field value>,
...
},
formatedInstance: {
<field name>: <serializable, field value formated to corresponding UI Type>,
...
},
status: <"ready"|"saving", create view status>
/*
* Parsing, Field/Instance Validation and Internal Errors -- see relevant subheadings
* (all other errors are displayed on "error" view)
*/
errors: {
fields: {
<field name>: [<Parsing Error or Field Validation Error>, ...],
...
},
general: [<Instance Validation Error or Internal Error>, ...]
}
},
edit: {
/*
* instance in its "canonical state", i.e. as present on the server
*/
persistentInstance: {
<field name>: <serializable, field value>,
...
},
/*
* row instance as displayed in Edit Form
*/
formInstance: {
<field name>: <serializable, field value>,
...
},
/*
* raw instance as communicated to React Components rendering Edit Form fields
*/
formatedInstance: {
<field name>: <serializable, field value formated to corresponding UI Type>,
...
},
/*
* Either an array of arrays (representing tabs) -- for tabbed layout,
* or an array of arrays (representing sections) and objects (representing fields) -- otherwise.
*/
formLayout: [
/*
* array representing a tab. Its elements are sections/fields. The array also has props:
* -- "tab", string with tab name,
* -- "disabled", boolean.
* -- "component", optional custom React Component, see TabFormComponent subheading.
*/
[
/*
* array representing a section. Its elements are fields. The array also has props:
* -- "section", string with section name.
*/
[
/*
* object representing a field.
*/
{
field: <string, field name>,
readOnly: <boolean>,
component: <function, FieldInputComponent or default React Component for displaying the field>
},
...
],
...
]
...
],
/*
* a ref to array representing active tab - for tabbed form layout,
* undefined - otherwise.
*/
activeTab: <array|undefined>,
instanceLabel: <string, entity instance description>,
status: <"uninitialized"|"initializing"|"ready"|"extracting"|"updating"|"deleting"|"redirecting", edit view status>,
/*
* Parsing, Field/Instance Validation and Internal Errors -- see relevant subheadings
* (all other errors are displayed on "error" view)
*/
errors: {
fields: {
<field name>: [<Parsing Error or Field Validation Error>, ...],
...
},
general: [<Instance Validation Error or Internal Error>, ...]
}
},
show: {
instance: {
<field name>: <serializable, field value>,
...
},
tab: <string, active tab name>,
status: <"uninitialized"|"initializing"|"ready"|"redirecting", show view status>,
},
error: {
errors: [{
code: <natural number, error code>,
?payload: <any, structure is defined by error code>
}],
status: <"uninitialized"|"ready"|"redirecting", error view status>
}
}
}
{
code: 400,
id: <string, error id used by translation service>,
?message: <string, default error message - in case a translation is not provided>,
?args: <object, optional parameters for i18n service>
}
Both plain objects and instances of Error may be used. The error must not be an instance of system error constructor, like RangeError, SyntaxError, TypeError, etc.
{
code: 500,
id: <string, error id used by translation service>,
message: <string, default error message in English>
}
All internal errors are plain objects, not instances of Error, InternalError, TypeError, etc.