-
Konrad Mohrfeldt authored
Up until now the calendar kept a single record of calendar events. This record was modified whenever new or other events needed to be displayed. Events were added/changed/removed imperatively (i.e. when entering/leaving conflict mode), which goes against the principle of unidirectional data flow embraced by Vue and other reactive frameworks. The calendar is now split into separate components most importantly the normal week view and a separate conflict view with separate state management. The state management itself has been reworked and improved so that it uses unidirectional data flow. These changes massively improve performance, simplify state management, and should make it easier to reason about the code (conflict mode was hard!). fixes #287
Konrad Mohrfeldt authoredUp until now the calendar kept a single record of calendar events. This record was modified whenever new or other events needed to be displayed. Events were added/changed/removed imperatively (i.e. when entering/leaving conflict mode), which goes against the principle of unidirectional data flow embraced by Vue and other reactive frameworks. The calendar is now split into separate components most importantly the normal week view and a separate conflict view with separate state management. The state management itself has been reworked and improved so that it uses unidirectional data flow. These changes massively improve performance, simplify state management, and should make it easier to reason about the code (conflict mode was hard!). fixes #287