Skip to content

Commit 5fe4047

Browse files
committed
Fix: Re-rendering issue
1 parent e3a3688 commit 5fe4047

File tree

2 files changed

+28
-13
lines changed

2 files changed

+28
-13
lines changed

users/discord/App.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,17 @@ const handleUserSelected = (userId) => {
4444
);
4545

4646
if (selectedUserIndex !== -1) {
47+
const usersSection = document.querySelector('.users_section');
48+
const scrollPosition = usersSection?.scrollTop;
49+
4750
showUser = selectedUserIndex;
51+
52+
rerender(App(), window['root']);
53+
54+
const restoredUsersSection = document.querySelector('.users_section');
55+
if (restoredUsersSection) {
56+
restoredUsersSection.scrollTop = scrollPosition;
57+
}
4858
}
4959
}
5060
};

users/discord/components/UsersSection.js

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ export const UsersSection = ({ users, showUser, handleUserSelected }) => {
55

66
const handleClick = (userId) => {
77
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-
});
8+
const activeCard = document.querySelector('.user_card.active_tab');
9+
if (activeCard) {
10+
activeCard.classList.remove('active_tab');
11+
}
12+
13+
const newActiveCard = document.querySelector(
14+
`.user_card[data-key="${userId}"]`,
15+
);
16+
if (newActiveCard) {
17+
newActiveCard.classList.add('active_tab');
18+
}
1519

1620
const selectedUser = users.find((user) => user.id === userId);
1721

@@ -20,9 +24,9 @@ export const UsersSection = ({ users, showUser, handleUserSelected }) => {
2024
detailsSection
2125
.querySelectorAll('.user_details_field')
2226
.forEach((field) => {
23-
const label = field.querySelector('span:first-child')?.textContent;
24-
const valueSpan = field.querySelector('span:last-child');
25-
const link = field.querySelector('a');
27+
const label = field.querySelector('#user-label')?.textContent;
28+
const valueSpan = field.querySelector('#user-value');
29+
const link = field.querySelector('#user-management-link');
2630

2731
switch (label) {
2832
case 'Name: ':
@@ -35,10 +39,11 @@ export const UsersSection = ({ users, showUser, handleUserSelected }) => {
3539
if (valueSpan) valueSpan.textContent = selectedUser.discordId;
3640
break;
3741
case 'Joined RDS server on: ':
38-
if (valueSpan)
42+
if (valueSpan) {
3943
valueSpan.textContent = new Date(
4044
selectedUser.discordJoinedAt,
4145
).toUTCString();
46+
}
4247
break;
4348
case 'User Management: ':
4449
if (link) {
@@ -48,9 +53,9 @@ export const UsersSection = ({ users, showUser, handleUserSelected }) => {
4853
break;
4954
}
5055
});
51-
}
5256

53-
handleUserSelected(userId);
57+
handleUserSelected(userId);
58+
}
5459
};
5560

5661
return createElement(

0 commit comments

Comments
 (0)