import { useActor, useMachine } from "@xstate/react"
import { FC, useContext, useEffect } from "react"
import { Helmet } from "react-helmet-async"
import { useNavigate } from "react-router-dom"
import { pageTitle } from "util/page"
import { setupMachine } from "xServices/setup/setupXService"
import { XServiceContext } from "xServices/StateContext"
import { SetupPageView } from "./SetupPageView"
export const SetupPage: FC = () => {
const navigate = useNavigate()
const xServices = useContext(XServiceContext)
const [authState, authSend] = useActor(xServices.authXService)
const [setupState, setupSend] = useMachine(setupMachine, {
actions: {
onCreateFirstUser: ({ firstUser }) => {
if (!firstUser) {
throw new Error("First user was not defined.")
}
authSend({ type: "SIGN_IN", email: firstUser.email, password: firstUser.password })
},
},
})
const { createFirstUserFormErrors, createFirstUserErrorMessage } = setupState.context
useEffect(() => {
if (authState.matches("signedIn")) {
return navigate("/workspaces")
}
}, [authState, navigate])
return (
<>
{pageTitle("Set up your account")}
{
setupSend({ type: "CREATE_FIRST_USER", firstUser })
}}
/>
>
)
}