Skip to content

Commit 4e0e64c

Browse files
committed
Set up initial data population
1 parent 07c7f70 commit 4e0e64c

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

site/pages/workspaces/[user]/[workspace].tsx

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,38 @@
11
import React from "react"
2+
import useSWR from "swr"
23
import { makeStyles } from "@material-ui/core/styles"
34
import { useRouter } from "next/router"
4-
import { Navbar } from "../../components/Navbar"
5-
import { Footer } from "../../components/Page"
6-
import { useUser } from "../../contexts/UserContext"
5+
import { Navbar } from "../../../components/Navbar"
6+
import { Footer } from "../../../components/Page"
7+
import { useUser } from "../../../contexts/UserContext"
8+
import { firstOrItem } from "../../../util/array"
9+
import { ErrorSummary } from "../../../components/ErrorSummary"
10+
import { FullScreenLoader } from "../../../components/Loader/FullScreenLoader"
711

812
//import { Workspace } from "../../components/Workspace"
913
//import { MockWorkspace } from "../../test_helpers"
1014

15+
import * as API from "../../../api"
16+
1117
const WorkspacesPage: React.FC = () => {
1218
const styles = useStyles()
1319
const router = useRouter()
1420
const { me, signOut } = useUser(true)
1521

1622
const { user: userQueryParam, workspace: workspaceQueryParam } = router.query
1723

18-
const userParam = firstOrDefault(userQueryParam, null)
19-
const workspaceParam = firstOrDefault(workspaceQueryParam, null)
24+
const userParam = firstOrItem(userQueryParam, null)
25+
const workspaceParam = firstOrItem(workspaceQueryParam, null)
26+
27+
const { data: workspace, error: workspaceError } = useSWR<API.Workspace, Error>(() => `/api/v2/workspaces/${(userParam as any).toString()}/${(workspaceParam as any).toString()}`)
28+
29+
if (workspaceError) {
30+
return <ErrorSummary error={workspaceError} />
31+
}
32+
33+
if (!me || !workspace) {
34+
return <FullScreenLoader />
35+
}
2036

2137
return (
2238
<div className={styles.root}>
@@ -44,3 +60,4 @@ const useStyles = makeStyles(() => ({
4460
}))
4561

4662
export default WorkspacesPage
63+

0 commit comments

Comments
 (0)