Slight refactoring

This commit is contained in:
Ian Philips 2022-09-02 16:15:57 -06:00
parent 4578d5ba75
commit 81941f1f1f
4 changed files with 10 additions and 13 deletions

View File

@ -90,7 +90,7 @@ export function EditGroupButton(props: { group: Group; className?: string }) {
<FilterSelectUsers <FilterSelectUsers
setSelectedUsers={setAddMemberUsers} setSelectedUsers={setAddMemberUsers}
selectedUsers={addMemberUsers} selectedUsers={addMemberUsers}
ignoreUserIds={[]} ignoreUserIds={memberIds}
/> />
</div> </div>

View File

@ -16,7 +16,7 @@ import { getUser } from 'web/lib/firebase/users'
import { filterDefined } from 'common/util/array' import { filterDefined } from 'common/util/array'
import { Contract } from 'common/contract' import { Contract } from 'common/contract'
import { uniq } from 'lodash' import { uniq } from 'lodash'
import { getValues, listenForValues } from 'web/lib/firebase/utils' import { listenForValues } from 'web/lib/firebase/utils'
export const useGroup = (groupId: string | undefined) => { export const useGroup = (groupId: string | undefined) => {
const [group, setGroup] = useState<Group | null | undefined>() const [group, setGroup] = useState<Group | null | undefined>()
@ -99,11 +99,6 @@ export function useMemberIds(groupId: string | null) {
return memberIds return memberIds
} }
export async function listMembers(group: Group) {
const members = await getValues<GroupMemberDoc>(groupMembers(group.id))
return await Promise.all(members.map((m) => m.userId).map(getUser))
}
export const useGroupsWithContract = (contract: Contract) => { export const useGroupsWithContract = (contract: Contract) => {
const [groups, setGroups] = useState<Group[]>([]) const [groups, setGroups] = useState<Group[]>([])

View File

@ -24,6 +24,7 @@ import { Contract } from 'common/contract'
import { updateContract } from 'web/lib/firebase/contracts' import { updateContract } from 'web/lib/firebase/contracts'
import { db } from 'web/lib/firebase/init' import { db } from 'web/lib/firebase/init'
import { filterDefined } from 'common/lib/util/array' import { filterDefined } from 'common/lib/util/array'
import { getUser } from 'web/lib/firebase/users'
export const groups = coll<Group>('groups') export const groups = coll<Group>('groups')
export const groupMembers = (groupId: string) => export const groupMembers = (groupId: string) =>
@ -235,3 +236,8 @@ export function getGroupLinkToDisplay(contract: Contract) {
: sortedGroupLinks?.[0] ?? null : sortedGroupLinks?.[0] ?? null
return groupToDisplay return groupToDisplay
} }
export async function listMembers(group: Group) {
const members = await getValues<GroupMemberDoc>(groupMembers(group.id))
return await Promise.all(members.map((m) => m.userId).map(getUser))
}

View File

@ -14,18 +14,14 @@ import {
getGroupBySlug, getGroupBySlug,
groupPath, groupPath,
joinGroup, joinGroup,
listMembers,
updateGroup, updateGroup,
} from 'web/lib/firebase/groups' } from 'web/lib/firebase/groups'
import { Row } from 'web/components/layout/row' import { Row } from 'web/components/layout/row'
import { firebaseLogin, getUser, User } from 'web/lib/firebase/users' import { firebaseLogin, getUser, User } from 'web/lib/firebase/users'
import { Col } from 'web/components/layout/col' import { Col } from 'web/components/layout/col'
import { useUser } from 'web/hooks/use-user' import { useUser } from 'web/hooks/use-user'
import { import { useGroup, useGroupContractIds, useMembers } from 'web/hooks/use-group'
listMembers,
useGroup,
useGroupContractIds,
useMembers,
} from 'web/hooks/use-group'
import { scoreCreators, scoreTraders } from 'common/scoring' import { scoreCreators, scoreTraders } from 'common/scoring'
import { Leaderboard } from 'web/components/leaderboard' import { Leaderboard } from 'web/components/leaderboard'
import { formatMoney } from 'common/util/format' import { formatMoney } from 'common/util/format'