Skip to content

Commit c387d34

Browse files
presleypkylecarbs
authored andcommitted
Make workspace machine ephemeral to limit polling (#1674)
1 parent 405ec7d commit c387d34

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

site/src/pages/WorkspacePage/WorkspacePage.tsx

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { useActor } from "@xstate/react"
2-
import React, { useContext, useEffect } from "react"
1+
import { useMachine } from "@xstate/react"
2+
import React, { useEffect } from "react"
33
import { useParams } from "react-router-dom"
44
import { ErrorSummary } from "../../components/ErrorSummary/ErrorSummary"
55
import { FullScreenLoader } from "../../components/Loader/FullScreenLoader"
@@ -8,14 +8,13 @@ import { Stack } from "../../components/Stack/Stack"
88
import { Workspace } from "../../components/Workspace/Workspace"
99
import { firstOrItem } from "../../util/array"
1010
import { getWorkspaceStatus } from "../../util/workspace"
11-
import { XServiceContext } from "../../xServices/StateContext"
11+
import { workspaceMachine } from "../../xServices/workspace/workspaceXService"
1212

1313
export const WorkspacePage: React.FC = () => {
1414
const { workspace: workspaceQueryParam } = useParams()
1515
const workspaceId = firstOrItem(workspaceQueryParam, null)
1616

17-
const xServices = useContext(XServiceContext)
18-
const [workspaceState, workspaceSend] = useActor(xServices.workspaceXService)
17+
const [workspaceState, workspaceSend] = useMachine(workspaceMachine)
1918
const { workspace, resources, getWorkspaceError, getResourcesError, builds } = workspaceState.context
2019
const workspaceStatus = getWorkspaceStatus(workspace?.latest_build)
2120

site/src/xServices/StateContext.tsx

-3
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@ import { authMachine } from "./auth/authXService"
66
import { buildInfoMachine } from "./buildInfo/buildInfoXService"
77
import { siteRolesMachine } from "./roles/siteRolesXService"
88
import { usersMachine } from "./users/usersXService"
9-
import { workspaceMachine } from "./workspace/workspaceXService"
109

1110
interface XServiceContextType {
1211
authXService: ActorRefFrom<typeof authMachine>
1312
buildInfoXService: ActorRefFrom<typeof buildInfoMachine>
1413
usersXService: ActorRefFrom<typeof usersMachine>
15-
workspaceXService: ActorRefFrom<typeof workspaceMachine>
1614
siteRolesXService: ActorRefFrom<typeof siteRolesMachine>
1715
}
1816

@@ -38,7 +36,6 @@ export const XServiceProvider: React.FC = ({ children }) => {
3836
authXService: useInterpret(authMachine),
3937
buildInfoXService: useInterpret(buildInfoMachine),
4038
usersXService: useInterpret(() => usersMachine.withConfig({ actions: { redirectToUsersPage } })),
41-
workspaceXService: useInterpret(workspaceMachine),
4239
siteRolesXService: useInterpret(siteRolesMachine),
4340
}}
4441
>

0 commit comments

Comments
 (0)