This test would fail when the two timezones is covers landed on
different days (like in the first few hours of UTC). So let's fix the
test to a particular moment in time.
* main: (27 commits)
Leave some space for the tray
Let's not assume it's a due date
Avoid overlap
Let's try without the big drag button, extend beyond the column a touch
Tighten labels
Match notification dot
Spacing
Add more context
Avoid leaving the tray open
This shouldn't be here
Paginate the read notifications
Add a test case
Split up a big view
Allow filtering by stage
Send beacon request on disconnect as well
Wire up notifications "Mark all as read" button
Add unread dot
Set state for when there are no new notifications
Move to right side, smooth transition
Open tray on click, stub mark-as-read button
...
* notification-index:
This shouldn't be here
Paginate the read notifications
Send beacon request on disconnect as well
Wire up notifications "Mark all as read" button
Add unread dot
Set state for when there are no new notifications
Move to right side, smooth transition
Open tray on click, stub mark-as-read button
Refactor
`New for you` empty state
Add a notifications button to the tray for reaching the index when you have no unreads
Needed when truncating so the avatar isn't squished
Style notifications index; add truncation for long notifications
Add an index view for all notifications
Move notifications to tray controller
Previously when an item was `created`, we'd track the event, update the
summary text, and broadcast the notifications. But now that we have a
draft state, we shold do all of this when it's published instead.