修缮了 ChatFragment 可能存在的性能问题

This commit is contained in:
CrescentLeaf
2025-11-22 11:26:19 +08:00
parent 03f8facde0
commit c9d9dd8144
3 changed files with 14 additions and 8 deletions

View File

@@ -567,7 +567,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
flexDirection: "column",
height: "100%",
}}>
{tabItemSelected == "GroupMembers" && <GroupMembersList target={target} />}
<GroupMembersList target={target} />
</mdui-tab-panel>
}
{
@@ -576,7 +576,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
flexDirection: "column",
height: "100%",
}}>
{tabItemSelected == "NewMemberRequests" && <JoinRequestsList target={target} />}
<JoinRequestsList target={target} />
</mdui-tab-panel>
}
<mdui-tab-panel slot="panel" value="Settings" style={{

View File

@@ -25,7 +25,7 @@ export default function GroupMembersList({
setSearchText((e.target as unknown as TextField).value)
})
useAsyncEffect(async () => {
React.useEffect(() => {
async function updateMembers() {
const re = await Client.invoke("Chat.getMembers", {
token: data.access_token,
@@ -38,8 +38,11 @@ export default function GroupMembersList({
}
updateMembers()
EventBus.on('GroupMembersList.updateMembers', () => updateMembers())
setTimeout(() => updateMembers(), 15 * 1000)
})
const id = setTimeout(() => updateMembers(), 15 * 1000)
return () => {
clearTimeout(id)
}
}, [target])
return <mdui-list style={{
overflowY: 'auto',

View File

@@ -28,7 +28,7 @@ export default function JoinRequestsList({
setSearchText((e.target as unknown as TextField).value)
})
useAsyncEffect(async () => {
React.useEffect(() => {
async function updateJoinRequests() {
const re = await Client.invoke("Chat.getJoinRequests", {
token: data.access_token,
@@ -41,8 +41,11 @@ export default function JoinRequestsList({
}
updateJoinRequests()
EventBus.on('JoinRequestsList.updateJoinRequests', () => updateJoinRequests())
setTimeout(() => updateJoinRequests(), 15 * 1000)
})
const id = setTimeout(() => updateJoinRequests(), 15 * 1000)
return () => {
clearTimeout(id)
}
}, [target])
async function removeJoinRequest(userId: string) {
const re = await Client.invoke("Chat.processJoinRequest", {