mirror of
https://github.com/tulir/gomuks.git
synced 2025-04-19 18:13:41 -05:00
web/rightpanel: fix filtering member list
This commit is contained in:
parent
9fd50a6ae3
commit
717f2989a8
2 changed files with 7 additions and 5 deletions
|
@ -34,6 +34,7 @@ export function filter(users: AutocompleteMemberEntry[], query: string): Autocom
|
|||
interface filteredUserCache {
|
||||
query: string
|
||||
result: AutocompleteMemberEntry[]
|
||||
slicedResult?: AutocompleteMemberEntry[]
|
||||
}
|
||||
|
||||
export function useFilteredMembers(
|
||||
|
@ -44,15 +45,16 @@ export function useFilteredMembers(
|
|||
if (!query) {
|
||||
prev.current.query = ""
|
||||
prev.current.result = allMembers
|
||||
prev.current.slicedResult = slice && allMembers.length > 100 ? allMembers.slice(0, 100) : undefined
|
||||
} else if (prev.current.query !== query) {
|
||||
prev.current.result = (sort ? filterAndSort : filter)(
|
||||
query.startsWith(prev.current.query) ? prev.current.result : allMembers,
|
||||
query,
|
||||
)
|
||||
if (prev.current.result.length > 100 && slice) {
|
||||
prev.current.result = prev.current.result.slice(0, 100)
|
||||
}
|
||||
prev.current.slicedResult = prev.current.result.length > 100 && slice
|
||||
? prev.current.result.slice(0, 100)
|
||||
: undefined
|
||||
prev.current.query = query
|
||||
}
|
||||
return prev.current.result
|
||||
return prev.current.slicedResult ?? prev.current.result
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ const MemberList = () => {
|
|||
roomCtx.store.membersRequested = true
|
||||
use(ClientContext)?.loadRoomState(roomCtx.store.roomID, { omitMembers: false, refetch: false })
|
||||
}
|
||||
const memberEvents = useFilteredMembers(roomCtx?.store, filter)
|
||||
const memberEvents = useFilteredMembers(roomCtx?.store, filter, false, false)
|
||||
if (!roomCtx) {
|
||||
return null
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue