Skip to content

Commit 4269bfb

Browse files
committed
Fix: Scrollablity issue for discord users
1 parent 1ecffc5 commit 4269bfb

File tree

3 files changed

+54
-9
lines changed

3 files changed

+54
-9
lines changed

users/discord/App.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,11 @@ const handleTabNavigation = async (e) => {
4040
const handleUserSelected = (userId) => {
4141
if (userId) {
4242
const selectedUserIndex = usersData[activeTab]?.findIndex(
43-
(user) => user.id === userId,
43+
(user) => user.id === userId
4444
);
4545

4646
if (selectedUserIndex !== -1) {
4747
showUser = selectedUserIndex;
48-
rerender(App(), window['root']);
4948
}
5049
}
5150
};
Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,67 @@
11
const { createElement } = react;
22

33
export const UsersSection = ({ users, showUser, handleUserSelected }) => {
4+
let selectedUserId = users[showUser]?.id;
5+
6+
const handleClick = (userId) => {
7+
selectedUserId = userId;
8+
document.querySelectorAll('.user_card').forEach(card => {
9+
if (card.dataset.key === userId) {
10+
card.classList.add('active_tab');
11+
} else {
12+
card.classList.remove('active_tab');
13+
}
14+
});
15+
16+
const selectedUser = users.find(user => user.id === userId);
17+
18+
const detailsSection = document.querySelector('.user_details_section');
19+
if (detailsSection && selectedUser) {
20+
detailsSection.querySelectorAll('.user_details_field').forEach(field => {
21+
const label = field.querySelector('span:first-child')?.textContent;
22+
const valueSpan = field.querySelector('span:last-child');
23+
const link = field.querySelector('a');
24+
25+
switch(label) {
26+
case 'Name: ':
27+
if (valueSpan) valueSpan.textContent = selectedUser.first_name;
28+
break;
29+
case 'Username: ':
30+
if (valueSpan) valueSpan.textContent = selectedUser.username;
31+
break;
32+
case 'Discord ID: ':
33+
if (valueSpan) valueSpan.textContent = selectedUser.discordId;
34+
break;
35+
case 'Joined RDS server on: ':
36+
if (valueSpan) valueSpan.textContent = new Date(selectedUser.discordJoinedAt).toUTCString();
37+
break;
38+
case 'User Management: ':
39+
if (link) {
40+
link.href = `${USER_MANAGEMENT_URL}${selectedUser.username}`;
41+
link.textContent = `${USER_MANAGEMENT_URL}${selectedUser.username}`;
42+
}
43+
break;
44+
}
45+
});
46+
}
47+
48+
handleUserSelected(userId);
49+
};
50+
451
return createElement(
552
'aside',
653
{
754
class: 'users_section',
8-
955
'data-testid': 'users-section',
1056
},
1157
users?.map((user) => {
1258
return createElement(
1359
'div',
1460
{
15-
class: `user_card ${
16-
users[showUser].id === user.id ? 'active_tab' : ''
17-
}`,
61+
class: `user_card ${selectedUserId === user.id ? 'active_tab' : ''}`,
1862
'data-testid': `user-card-${user.id}`,
1963
'data-key': user.id,
20-
onclick: () => handleUserSelected(user.id),
64+
onclick: () => handleClick(user.id),
2165
},
2266
[
2367
createElement('img', {
@@ -29,4 +73,4 @@ export const UsersSection = ({ users, showUser, handleUserSelected }) => {
2973
);
3074
}),
3175
);
32-
};
76+
};

users/discord/style.css

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ main {
2020

2121
.users_section {
2222
grid-area: aside;
23-
overflow: scroll;
23+
height: calc(100vh - 16rem);
24+
overflow-y: auto;
2425
padding-inline: 1rem;
26+
border: none;
2527
}
2628

2729
.tabs_section {

0 commit comments

Comments
 (0)