feat(website): add timetable slot comparison view - #4461
Open
eugenewong22 wants to merge 2 commits into
Open
Conversation
Contributor
|
PR author is not in the allowed authors list. |
|
@eugenewong22 is attempting to deploy a commit to the modsbot's projects Team on Vercel. A member of the Team first needs to authorize it. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #4461 +/- ##
==========================================
+ Coverage 54.52% 59.99% +5.46%
==========================================
Files 274 318 +44
Lines 6076 7539 +1463
Branches 1455 1858 +403
==========================================
+ Hits 3313 4523 +1210
- Misses 2763 3016 +253 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Add "save slots" per semester (nusmodifications#4455): a tab switcher lets users keep several timetable arrangements and switch between them instantly, create blank or duplicated slots, and rename/delete via undoable actions. Shared timetable links can now import into a new slot instead of overwriting the saved one. The active timetable stays in the existing lessons/colors/hidden/ta maps, so existing timetable actions, selectors, undo, share and export are unchanged. Inactive arrangements live in a new `slots` map keyed by semester; switching snapshots the outgoing slot and loads the target's data. A redux-persist v3 migration adds the new (empty) maps for existing users, who implicitly keep their current timetable as "Timetable 1". Slot modules are pinned against module bank LRU eviction and prefetched before a switch loads them.
eugenewong22
force-pushed
the
timetable-slots
branch
from
July 10, 2026 03:14
fac004d to
5e6e72a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Completes #4455: with multiple saved timetables (the save-slots PR), users also want to compare arrangements side-by-side instead of using OS split screen or screenshots.
What this does
⋯menu (shown when a semester has ≥2 slots) replaces the timetable with two read-only grids side by side, defaulting to the active slot vs. the next one.mdbreakpoint the Bootstrap columns stack, which is the mobile behaviour.?compare=deep link is a possible future enhancement.) It resets on semester change.Implementation
TimetableSlotsComparerenders the bareTimetablegrid directly (theVenueDetailspattern) — the heavy interactiveTimetableContentisn't involved. Per pane:getSlotTimetableData→hydrateSemTimetableWithLessons(hidden modules omitted) → colour viafillColorMappingwith the slot's own saved colours →arrangeLessonsForWeek.Testing
pnpm run cipasses.