mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
fix: push create workspace UX to templates page (#2142)
This commit is contained in:
@ -1,8 +1,7 @@
|
||||
import { useMachine } from "@xstate/react"
|
||||
import { FC } from "react"
|
||||
import { Helmet } from "react-helmet"
|
||||
import { useNavigate, useSearchParams } from "react-router-dom"
|
||||
import { Template } from "../../api/typesGenerated"
|
||||
import { useNavigate, useParams } from "react-router-dom"
|
||||
import { useOrganizationId } from "../../hooks/useOrganizationId"
|
||||
import { pageTitle } from "../../util/page"
|
||||
import { createWorkspaceMachine } from "../../xServices/createWorkspace/createWorkspaceXService"
|
||||
@ -10,11 +9,11 @@ import { CreateWorkspacePageView } from "./CreateWorkspacePageView"
|
||||
|
||||
const CreateWorkspacePage: FC = () => {
|
||||
const organizationId = useOrganizationId()
|
||||
const [searchParams] = useSearchParams()
|
||||
const preSelectedTemplateName = searchParams.get("template")
|
||||
const { template } = useParams()
|
||||
const templateName = template ? template : ""
|
||||
const navigate = useNavigate()
|
||||
const [createWorkspaceState, send] = useMachine(createWorkspaceMachine, {
|
||||
context: { organizationId, preSelectedTemplateName },
|
||||
context: { organizationId, templateName },
|
||||
actions: {
|
||||
onCreateWorkspace: (_, event) => {
|
||||
navigate(`/@${event.data.owner_name}/${event.data.name}`)
|
||||
@ -31,11 +30,12 @@ const CreateWorkspacePage: FC = () => {
|
||||
loadingTemplates={createWorkspaceState.matches("gettingTemplates")}
|
||||
loadingTemplateSchema={createWorkspaceState.matches("gettingTemplateSchema")}
|
||||
creatingWorkspace={createWorkspaceState.matches("creatingWorkspace")}
|
||||
templateName={createWorkspaceState.context.templateName}
|
||||
templates={createWorkspaceState.context.templates}
|
||||
selectedTemplate={createWorkspaceState.context.selectedTemplate}
|
||||
templateSchema={createWorkspaceState.context.templateSchema}
|
||||
onCancel={() => {
|
||||
navigate(preSelectedTemplateName ? "/templates" : "/workspaces")
|
||||
navigate("/templates")
|
||||
}}
|
||||
onSubmit={(request) => {
|
||||
send({
|
||||
@ -43,12 +43,6 @@ const CreateWorkspacePage: FC = () => {
|
||||
request,
|
||||
})
|
||||
}}
|
||||
onSelectTemplate={(template: Template) => {
|
||||
send({
|
||||
type: "SELECT_TEMPLATE",
|
||||
template,
|
||||
})
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
|
Reference in New Issue
Block a user