Use the magic auth
prop for groups SSR (#851)
This commit is contained in:
parent
2d88675f42
commit
861fb7abbd
|
@ -9,7 +9,7 @@ import { Page } from 'web/components/page'
|
||||||
import { Title } from 'web/components/title'
|
import { Title } from 'web/components/title'
|
||||||
import { useGroups, useMemberGroupIds } from 'web/hooks/use-group'
|
import { useGroups, useMemberGroupIds } from 'web/hooks/use-group'
|
||||||
import { groupPath, listAllGroups } from 'web/lib/firebase/groups'
|
import { groupPath, listAllGroups } from 'web/lib/firebase/groups'
|
||||||
import { getUser, User } from 'web/lib/firebase/users'
|
import { getUser, getUserAndPrivateUser, User } from 'web/lib/firebase/users'
|
||||||
import { Tabs } from 'web/components/layout/tabs'
|
import { Tabs } from 'web/components/layout/tabs'
|
||||||
import { SiteLink } from 'web/components/site-link'
|
import { SiteLink } from 'web/components/site-link'
|
||||||
import clsx from 'clsx'
|
import clsx from 'clsx'
|
||||||
|
@ -23,7 +23,7 @@ import { useUser } from 'web/hooks/use-user'
|
||||||
|
|
||||||
export const getServerSideProps: GetServerSideProps = async (ctx) => {
|
export const getServerSideProps: GetServerSideProps = async (ctx) => {
|
||||||
const creds = await authenticateOnServer(ctx)
|
const creds = await authenticateOnServer(ctx)
|
||||||
const serverUser = creds ? await getUser(creds.uid) : null
|
const auth = creds ? await getUserAndPrivateUser(creds.uid) : null
|
||||||
const groups = await listAllGroups().catch((_) => [])
|
const groups = await listAllGroups().catch((_) => [])
|
||||||
|
|
||||||
const creators = await Promise.all(
|
const creators = await Promise.all(
|
||||||
|
@ -33,17 +33,17 @@ export const getServerSideProps: GetServerSideProps = async (ctx) => {
|
||||||
creators.map((creator) => [creator.id, creator])
|
creators.map((creator) => [creator.id, creator])
|
||||||
)
|
)
|
||||||
|
|
||||||
return { props: { serverUser, groups: groups, creatorsDict } }
|
return { props: { auth, groups, creatorsDict } }
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function Groups(props: {
|
export default function Groups(props: {
|
||||||
serverUser: User | null
|
auth: { user: User } | null
|
||||||
groups: Group[]
|
groups: Group[]
|
||||||
creatorsDict: { [k: string]: User }
|
creatorsDict: { [k: string]: User }
|
||||||
}) {
|
}) {
|
||||||
//TODO: do we really need the creatorsDict?
|
//TODO: do we really need the creatorsDict?
|
||||||
const [creatorsDict, setCreatorsDict] = useState(props.creatorsDict)
|
const [creatorsDict, setCreatorsDict] = useState(props.creatorsDict)
|
||||||
const { serverUser } = props || {}
|
const serverUser = props.auth?.user
|
||||||
const groups = useGroups() ?? props.groups
|
const groups = useGroups() ?? props.groups
|
||||||
const memberGroupIds = useMemberGroupIds(serverUser) || []
|
const memberGroupIds = useMemberGroupIds(serverUser) || []
|
||||||
const user = useUser() ?? serverUser
|
const user = useUser() ?? serverUser
|
||||||
|
|
Loading…
Reference in New Issue
Block a user