Slight refactoring
This commit is contained in:
parent
4578d5ba75
commit
81941f1f1f
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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[]>([])
|
||||||
|
|
||||||
|
|
|
@ -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))
|
||||||
|
}
|
||||||
|
|
|
@ -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'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user