fixed all issues - #363
Conversation
|
@Benalex8797 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
Thanks @Benalex8797 — flagging this rather than merging. It merges into The test drives a self-contained, context-reading switcher: renderWithTheme(<DarkModeSwitcher />); // no props
expect(screen.getByTestId("theme-icon")).toHaveTextContent("🌙");
expect(screen.getByTestId("dark-mode-switcher"))
.toHaveAttribute("aria-pressed", "true");The
Two smaller things I hit while checking, worth fixing in the same pass:
The rest of the branch looks sound — Suggested path: decide which switcher you want. Either add the context-aware variant the test expects (a thin wrapper reading |
closes #315
closes #325
closes #326
closes #329
SUMMARY:
New files:
NotificationContext.tsx
— NotificationProvider + useNotifications hook with addNotification, markAllRead, clearAll, and unreadCount
NotificationBell.tsx
— bell button with animated unread badge, ring-on-new-notification, press-on-click, and a slide-in dropdown panel showing notification items with type icons
notification-bell.test.tsx
— 24 tests covering context state, badge rendering/capping, aria attributes, panel open/close, animation classes, and keyboard interactions
Modified files:
globals.css
— 4 new keyframes: bell-ring (pivot swing), badge-pop (spring scale), bell-press (scale bounce), panel-slide (fade+translate), each exposed as @theme inline variables and utility classes
layout.tsx
— NotificationProvider wraps the tree
Navbar.tsx
— placed in the controls row alongside