add filter form#1781
Conversation
mateacademy-ai-mentor
left a comment
There was a problem hiding this comment.
Review Summary
Your implementation successfully covers all core requirements for filtering and sorting people with URL search params. All three filter types (name query, century selection, sex filter) and four-column sorting (name, sex, born, died) are correctly implemented with proper URL state management. The only issue is a minor CSS linting violation in src/components/Loader/Loader.css at line 7 — the file is missing an empty line before a CSS rule. This is cosmetic and auto-fixable with npx stylelint 'src/components/Loader/Loader.css' --fix, but it does not affect functionality. All requirements from the task are satisfied.
✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨
Important
Fix the issues, commit the changes, and then re-request my review using the Re-request review button2 in the Reviewers tab.
Tip
If you have any comments about this review, please leave a message in the Add a comment section below and mention me with the @mateacademy-ai-mentor tag3.
I will read your message during my next review of your pull request. Please do not reply directly to my comments, as that feature is not supported yet.
Caution
Do not close the pull request until the review is complete. Closing it early can lead to unexpected behavior and disrupt the review process.
Footnotes
mateacademy-ai-mentor
left a comment
There was a problem hiding this comment.
Review Summary
Your implementation successfully meets all core requirements for the People Page filtering and sorting functionality. All URL Search Params are correctly implemented for the three filter types (name query, multiple century selection, and sex filter) as well as the four-column sorting (name, sex, born, died) with the proper three-click cycle. The PeopleFilters component properly manages query, centuries, and sex params using the helper functions, while PeoplePage correctly applies all filtering logic and conditionally shows the sidebar only when people are loaded. The PeopleTable component implements accurate sorting with localeCompare for strings and numeric subtraction for years, and the tableSort function correctly cycles through ascending → descending → disabled states. The previous Loader.css linting issue has been resolved with proper class spacing. All components work together seamlessly with URL state preserved during navigation between /people and /people/:slug routes. Well done!
✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨
DEMO LINK