Skip to content

feat: Advanced bounty search with multi-select filters, reward slider, and saved filter sets (Closes #842)#1259

Open
sepulchralvoid666 wants to merge 1 commit into
SolFoundry:mainfrom
sepulchralvoid666:feat/bounty-842-advanced-search-filters
Open

feat: Advanced bounty search with multi-select filters, reward slider, and saved filter sets (Closes #842)#1259
sepulchralvoid666 wants to merge 1 commit into
SolFoundry:mainfrom
sepulchralvoid666:feat/bounty-842-advanced-search-filters

Conversation

@sepulchralvoid666
Copy link
Copy Markdown

What this does

Implements advanced search and filtering capabilities for the bounty grid, allowing contributors to filter by programming language, tier, domain, reward range, and deadline.

New Component: BountyFilterPanel

Full-featured filter panel with animated show/hide:

Multi-Select Chip Filters

  • Languages: TypeScript, Rust, Solidity, Python, Go, JavaScript, C++, Swift, Kotlin, Move
  • Tiers: T1, T2, T3
  • Domains: Frontend, Backend, Smart Contracts, SDK, Infrastructure, DevOps, Mobile, AI/ML, Security, Documentation
  • Each chip toggles selection with visual check mark

Reward Range Slider

  • Price presets: All, <100K, 100K-500K, 500K-1M, 1M+ $FNDRY
  • Custom min/max range sliders with accent-emerald styling
  • Presets and sliders sync bidirectionally

Deadline Range Picker

  • Date inputs for deadline after/before filtering
  • Useful for time-sensitive bounty hunters

Saved Filter Sets

  • Save current filter configuration with custom name
  • Persisted to localStorage across sessions
  • One-click apply and delete saved sets
  • Full filter state restoration including search query and status

Updated: BountyGrid

  • Integrated filter panel with framer-motion AnimatePresence for smooth slide animation
  • Client-side filtering for all multi-select, reward range, and deadline fields (works regardless of backend support)
  • Server-side params for tier, reward_min, reward_max passed to API
  • Filter toggle button with active filter count badge
  • Context-aware empty states: search miss, filter miss, no bounties
  • Clear all filters action

How to test

  1. Navigate to bounties page
  2. Click Filters button — panel slides down
  3. Toggle language/tier/domain chips — grid filters immediately
  4. Use reward presets or drag sliders
  5. Set deadline ranges
  6. Save a filter set, clear filters, then re-apply saved set
  7. Verify filter persistence after page reload

Closes #842

Wallet: 2JHa4QQWNV7AGSGsVeX1cwjZtFcmTTomb1TrJmQthoh3

…nd saved filter sets

- New BountyFilterPanel component:
  - Multi-select chip filters for Languages (10 options), Tiers (T1/T2/T3), Domains (10 categories)
  - Reward range slider with price presets (All / <100K / 100K-500K / 500K-1M / 1M+)
  - Custom min/max range inputs with accent-emerald styled sliders
  - Deadline date range picker (after/before)
  - Save/load/delete filter sets persisted to localStorage
  - Active filter count badge
  - Clear all filters button
  - Animated show/hide with framer-motion AnimatePresence

- Updated BountyGrid:
  - Integrated BountyFilterPanel with slide-down animation
  - Client-side filtering for all multi-select, reward range, and deadline fields
  - Search + filter state combined in API params (tier, reward_min, reward_max)
  - Filter toggle button with active indicator badge
  - Context-aware empty state messages

Closes SolFoundry#842

Wallet: 2JHa4QQWNV7AGSGsVeX1cwjZtFcmTTomb1TrJmQthoh3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🏭 Bounty T2: Advanced Bounty Search with Filters

1 participant