-
- Downloads
refactor: rework calendar
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
Showing
- src/Pages/Calendar.vue 137 additions, 557 deletionssrc/Pages/Calendar.vue
- src/components/schedule/AConflictResolver.vue 383 additions, 0 deletionssrc/components/schedule/AConflictResolver.vue
- src/components/schedule/AScheduleCalendar.vue 97 additions, 0 deletionssrc/components/schedule/AScheduleCalendar.vue
- src/components/schedule/AScheduleConflictResolutionDialog.vue 59 additions, 15 deletions...components/schedule/AScheduleConflictResolutionDialog.vue
- src/i18n/de.js 39 additions, 8 deletionssrc/i18n/de.js
- src/i18n/en.js 39 additions, 8 deletionssrc/i18n/en.js
- src/steering-types.ts 2 additions, 3 deletionssrc/steering-types.ts
- src/stores/schedules.ts 5 additions, 1 deletionsrc/stores/schedules.ts
- src/tailwind.css 40 additions, 54 deletionssrc/tailwind.css
- src/types.ts 1 addition, 0 deletionssrc/types.ts
Loading
Please register or sign in to comment