修缮了 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", flexDirection: "column",
height: "100%", height: "100%",
}}> }}>
{tabItemSelected == "GroupMembers" && <GroupMembersList target={target} />} <GroupMembersList target={target} />
</mdui-tab-panel> </mdui-tab-panel>
} }
{ {
@@ -576,7 +576,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
flexDirection: "column", flexDirection: "column",
height: "100%", height: "100%",
}}> }}>
{tabItemSelected == "NewMemberRequests" && <JoinRequestsList target={target} />} <JoinRequestsList target={target} />
</mdui-tab-panel> </mdui-tab-panel>
} }
<mdui-tab-panel slot="panel" value="Settings" style={{ <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) setSearchText((e.target as unknown as TextField).value)
}) })
useAsyncEffect(async () => { React.useEffect(() => {
async function updateMembers() { async function updateMembers() {
const re = await Client.invoke("Chat.getMembers", { const re = await Client.invoke("Chat.getMembers", {
token: data.access_token, token: data.access_token,
@@ -38,8 +38,11 @@ export default function GroupMembersList({
} }
updateMembers() updateMembers()
EventBus.on('GroupMembersList.updateMembers', () => updateMembers()) EventBus.on('GroupMembersList.updateMembers', () => updateMembers())
setTimeout(() => updateMembers(), 15 * 1000) const id = setTimeout(() => updateMembers(), 15 * 1000)
}) return () => {
clearTimeout(id)
}
}, [target])
return <mdui-list style={{ return <mdui-list style={{
overflowY: 'auto', overflowY: 'auto',

View File

@@ -28,7 +28,7 @@ export default function JoinRequestsList({
setSearchText((e.target as unknown as TextField).value) setSearchText((e.target as unknown as TextField).value)
}) })
useAsyncEffect(async () => { React.useEffect(() => {
async function updateJoinRequests() { async function updateJoinRequests() {
const re = await Client.invoke("Chat.getJoinRequests", { const re = await Client.invoke("Chat.getJoinRequests", {
token: data.access_token, token: data.access_token,
@@ -41,8 +41,11 @@ export default function JoinRequestsList({
} }
updateJoinRequests() updateJoinRequests()
EventBus.on('JoinRequestsList.updateJoinRequests', () => 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) { async function removeJoinRequest(userId: string) {
const re = await Client.invoke("Chat.processJoinRequest", { const re = await Client.invoke("Chat.processJoinRequest", {