Hacking Workbench2 » History » Version 1
Peter Amstutz, 02/13/2019 06:52 PM
| 1 | 1 | Peter Amstutz | h1. Hacking Workbench2 |
|---|---|---|---|
| 2 | |||
| 3 | The application logically begin in @workbench2/src/index.tsx@ with a call to fetchConfig() and then (when the promise is fulfilled) the constructs the major pieces of the application architecture: |
||
| 4 | |||
| 5 | "services" interact with external resources. These classes define methods for reading and writing to a backend. Service types include a service for each the API server endpoint that workbench uses, WebDAV server, workbench2 configuration like vocabulary and file viewers, and preferences kept in the browser local store. |
||
| 6 | |||
| 7 | "store" is a "Redux":https://redux.js.org/ state container. State is divided into a groups. Each group defines a "reducer". A reducer is a function that takes (current state, action) and "reduces" it to a new state. At start, reducers are executed with an undefined state to get the initial starting state. After that, state is updated by "dispatching" an action to the state container. |
||
| 8 | |||
| 9 | The "App" component is invoked to rebuild the page (the "virtual DOM") whenever anything changes. ReactDOM merges the virtual DOM changes into the actual browser DOM. |