fix: resolve issue #1052 - replace Node Affinity filter with Learning… - #1077
Merged
RUKAYAT-CODER merged 1 commit intoJul 29, 2026
Merged
Conversation
… Learning Format - Remove backend infrastructure jargon (Node Affinity, Primary Cluster, Replica Node, Edge Cache) - Add meaningful course-discovery facet: Learning Format (Video / Interactive / Text-Based / Mixed) - Update FilterState interface to use learningFormat: string[] instead of nodeAffinity - Change URL param from 'affinity' to 'format' - Implement checkbox multi-select pattern consistent with existing filters - Add comprehensive help content for Learning Format - Update tests for new filter implementation - Remove all nodeAffinity references from codebase - Sync changes across both src/hooks and src/app/hooks - Update both FilterSidebar components and test files
|
@Danielobito009 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! 🚀 |
Contributor
|
Thank you for contributing to the project |
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.
🎯 Issue
Resolve GitHub issue #1052: Remove backend infrastructure jargon from the course search UI and replace with a meaningful, user-facing discovery facet.
📋 Description
The FilterSidebar component contained a "Node Affinity" filter with backend-specific terminology (Primary Cluster, Replica Node, Edge Cache, Auto/Optimized) that has no relevance to course discovery. This PR removes that placeholder content entirely and replaces it with a practical "Learning Format" filter that helps users find courses matching their preferred learning style.
✨ Changes
Removed
❌ Node Affinity filter block and all its radio button options
❌ Backend infrastructure labels: "Primary Cluster", "Replica Node", "Edge Cache", "Auto (Optimized)"
❌ Copy: "Select target cluster node for query execution and data fetching"
❌ All nodeAffinity state references
Added
✅ Learning Format filter with 4 checkbox options:
Video
Interactive
Text-Based
Mixed
✅ Comprehensive help content explaining each format type
✅ Multi-select functionality (users can choose multiple formats)
✅ Integrated FilterHelpPopover for Learning Format guidance
Updated
🔄 FilterState interface: nodeAffinity?: string → learningFormat: string[]
🔄 URL parameter: ?affinity=auto → ?format=video,interactive
🔄 Filter state management in both src/hooks and src/app/hooks
🔄 Tests updated to validate Learning Format instead of Node Affinity
🔄 Documentation reference updated
📝 Files Modified
useSearchFilters.tsx
useSearchFilters.ts
FilterSidebar.tsx
FilterSidebar.tsx
useFilterCustomerSupport.ts
FilterSidebar.test.tsx
FilterSidebar.test.tsx
STRUCTURED_DATA_IMPLEMENTATION.md - Documentation
🧪 Testing
✅ All Learning Format options render correctly
✅ Single format selection updates state and URL
✅ Multiple format selection works (e.g., ?format=video,interactive)
✅ Reset Parameters button clears Learning Format selection
✅ Tests updated and verified (manual code review)
✅ Zero remaining references to nodeAffinity or cluster terminology
🎨 Design Rationale
Why Learning Format?
Relevant: Users genuinely want to filter courses by content delivery method
Non-duplicative: Different from existing Difficulty/Level filter
Practical: Video, Interactive, Text, and Mixed formats appeal to different learning preferences
Native fit: Integrates seamlessly with existing filter architecture and patterns
UX improvement: Transforms placeholder content into actionable discovery feature
🔗 Related Issue
Closes #1052