Skip to content

Design a "Quiet hours" preference that suppresses non-critical toasts and animations #293

Description

@greatest0fallt1me

Description

This is a UI/UX issue introducing a Quiet hours preference under Settings → Notifications that suppresses non-critical toasts and freezes ambient animations within a user-defined window. Critical alerts (wallet errors, claim failures) still surface.

Requirements and Context

  • Stored as { start: "22:00", end: "08:00", tz: "auto" }
  • Hook in components/ui/toast.tsx and sonner.tsx to filter by severity
  • Visual indicator in the navbar moon icon
  • Must be secure, tested, and documented
  • Should be efficient and easy to review

Suggested Execution

  1. Fork the repo and create a branch
    git checkout -b feature/quiet-hours
  2. Implement changes
    • Edit app/(dashboard)/settings/page.tsx
    • Add lib/quiet-hours.ts and integrate with toast surfaces
  3. Test and commit
    • Time-fake tests around boundary
    • Cover edge cases (timezone changes, DST)
    • Include test output and notes in the PR

Example commit message

feat: quiet hours preference for toasts and motion

Acceptance Criteria

  • Critical toasts bypass quiet hours
  • Boundary handling (across midnight) verified
  • Indicator visible when active

Guidelines

  • WCAG 2.1 AA, never block actionable warnings
  • Clear documentation and inline comments
  • Timeframe: 96 hours

Metadata

Metadata

Assignees

No one assigned

    Labels

    GRANTFOX OSSGrantFox open-source campaign taskMAYBE REWARDEDMay be rewarded under the GrantFox campaignOFFICIAL CAMPAIGNOfficial GrantFox campaign issueaccessibilityWCAG 2.1 AA accessibilityenhancementNew feature or improvementui/uxUI/UX design, usability, and visual polish

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions