I’m thinking of a GUI architecture that works like a finite-state machine where there is a set of possible states and a set of possible inputs–or events.
The thing is, some states transition to the next state solely based on the input, but some hold on to the previous input(s) and transition based on the value of the previous input.
For example, let’s say there are states
IDLE, there may or may not be an input
id by itself doesn’t cause a transition (or it transitions to itself).
Once the event
screen_load happens, state transitions to
LOADING, and on
fetch_success, state transitions to either
SELECTED. If there was an
id input previously, the state transitions to
SELECTED immediately, but if no
id is specified, it transitions to
Just think of a screen where you have a list of items. If there was no previous selection, only the fetched list of items is shown on screen, but if the user has selected an item in the past (i.e. the user has visited the screen some time in the past and selected an item), the selection is shown as the fetched list of item is shown on screen.
So thinking about this transitioning state model, it’s a state machine where certain inputs that were made in the past (e.g.
id) are stored somewhere and are used later for transition along with the new input (e.g. transitioning from