The app’s state is split between the Redux store, and per component state when the state does not need to be shared throughout the app.
Redux actions are used to:
- manage edited assets: the edited document as well as the underlying type definition and code
- manage UI state: switch layouts, toggle block visibility, drag blocks and enter / exit full screen.
- communicate with the preview iframe / between blocks
Redux store
The redux store contains:
- the store defined in xrc-cms
- an object named edit containing the specific Edit app store
The Edit app store is structured thus:
{ doc: {} the edited asset's cloud doc, codeDoc: {} the edited asset's code doc, typeDef: {} the edited asset's TypeDefinition doc, logs: [] console logs generated by the preview iframe, layoutConfigs: {} available layouts, presetKey: current layout preset name, layout: {} current preset layout object }