- {filteredUsers.map(user => (
+ {sortedUsers.map(user => (
@@ -65,6 +155,8 @@ RankedUserList.propTypes = {
selectedSkills: PropTypes.arrayOf(PropTypes.string),
selectedPreferences: PropTypes.arrayOf(PropTypes.string),
searchQuery: PropTypes.string,
+ sortBy: PropTypes.string,
+ sortOrder: PropTypes.string,
};
export default RankedUserList;
diff --git a/src/components/HGNHelpSkillsDashboard/UserCard.jsx b/src/components/HGNHelpSkillsDashboard/UserCard.jsx
index eb7363bdb8..b97b7ccd6a 100644
--- a/src/components/HGNHelpSkillsDashboard/UserCard.jsx
+++ b/src/components/HGNHelpSkillsDashboard/UserCard.jsx
@@ -5,9 +5,20 @@ import slackIcon from './style/slack_icon.png';
import { useSelector } from 'react-redux';
function UserCard({ user }) {
- const { name, email, slack, score, topSkills } = user;
+ const { name, email, slack, score, topSkills, skills } = user;
const darkMode = useSelector(state => state.theme.darkMode);
+ const normalizedSkills = Array.isArray(topSkills)
+ ? topSkills
+ : Array.isArray(skills)
+ ? skills
+ .map(skill => {
+ if (typeof skill === 'string') return skill;
+ return skill.name || skill.skill || skill.label || skill.type || '';
+ })
+ .filter(Boolean)
+ : [];
+
return (

@@ -40,7 +51,7 @@ function UserCard({ user }) {
Top Skills:
-
{topSkills.join(', ')}
+
{normalizedSkills.join(', ')}
diff --git a/src/components/HGNHelpSkillsDashboard/style/CommunityMembersPage.module.css b/src/components/HGNHelpSkillsDashboard/style/CommunityMembersPage.module.css
index 42eb579511..13fb9b9bd7 100644
--- a/src/components/HGNHelpSkillsDashboard/style/CommunityMembersPage.module.css
+++ b/src/components/HGNHelpSkillsDashboard/style/CommunityMembersPage.module.css
@@ -113,16 +113,17 @@
.darkMode .preferenceButton:hover {
background-color: #374151;
}
+
.darkMode .skillButton.selected {
background-color: #3b82f6;
border-color: #3b82f6;
- color: #ffffff;
+ color: #fff;
}
.darkMode .preferenceButton.selected {
background-color: #22c55e;
border-color: #22c55e;
- color: #ffffff;
+ color: #fff;
}
.searchContainer {
@@ -144,6 +145,33 @@
color: #000;
}
+.toolbar {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ margin-bottom: 1rem;
+ justify-content: flex-end;
+}
+
+.sortLabel {
+ font-size: 0.95rem;
+ font-weight: 600;
+}
+
+.sortSelect {
+ border: 1px solid #d1d5db;
+ border-radius: 0.5rem;
+ padding: 0.4rem 0.75rem;
+ background: white;
+ color: #111827;
+}
+
+.darkMode .sortSelect {
+ background: #1f2937;
+ color: #f9fafb;
+ border-color: #4b5563;
+}
+
.clearButton {
background: none;
border: none;