fix: we are so back

This commit is contained in:
Kevin Nadro
2025-04-14 11:56:28 -06:00
parent b3e1326921
commit ba2570d2cd
8 changed files with 30 additions and 40 deletions

View File

@ -9,23 +9,15 @@ import {
} from 'react-router-dom' } from 'react-router-dom'
import { App } from '@src/App' import { App } from '@src/App'
import { AppStateProvider } from '@src/AppState'
import { Auth } from '@src/Auth' import { Auth } from '@src/Auth'
import { CommandBar } from '@src/components/CommandBar/CommandBar' import { CommandBar } from '@src/components/CommandBar/CommandBar'
import DownloadAppBanner from '@src/components/DownloadAppBanner' import DownloadAppBanner from '@src/components/DownloadAppBanner'
import { ErrorPage } from '@src/components/ErrorPage' import { ErrorPage } from '@src/components/ErrorPage'
import FileMachineProvider from '@src/components/FileMachineProvider' import FileMachineProvider from '@src/components/FileMachineProvider'
import LspProvider from '@src/components/LspProvider'
import { MachineManagerProvider } from '@src/components/MachineManagerProvider'
import ModelingMachineProvider from '@src/components/ModelingMachineProvider' import ModelingMachineProvider from '@src/components/ModelingMachineProvider'
import { OpenInDesktopAppHandler } from '@src/components/OpenInDesktopAppHandler'
import { ProjectsContextProvider } from '@src/components/ProjectsContextProvider'
import { SystemIOMachineLogicListener } from '@src/components/Providers/SystemIOProviderDesktop'
import { RouteProvider } from '@src/components/RouteProvider'
import { WasmErrBanner } from '@src/components/WasmErrBanner' import { WasmErrBanner } from '@src/components/WasmErrBanner'
import { NetworkContext } from '@src/hooks/useNetworkContext' import { NetworkContext } from '@src/hooks/useNetworkContext'
import { useNetworkStatus } from '@src/hooks/useNetworkStatus' import { useNetworkStatus } from '@src/hooks/useNetworkStatus'
import { KclContextProvider } from '@src/lang/KclProvider'
import { coreDump } from '@src/lang/wasm' import { coreDump } from '@src/lang/wasm'
import { import {
ASK_TO_OPEN_QUERY_PARAM, ASK_TO_OPEN_QUERY_PARAM,
@ -44,12 +36,12 @@ import {
} from '@src/lib/singletons' } from '@src/lib/singletons'
import { reportRejection } from '@src/lib/trap' import { reportRejection } from '@src/lib/trap'
import { useToken } from '@src/machines/appMachine' import { useToken } from '@src/machines/appMachine'
import RootLayout from '@src/Root'
import Home from '@src/routes/Home' import Home from '@src/routes/Home'
import Onboarding, { onboardingRoutes } from '@src/routes/Onboarding' import Onboarding, { onboardingRoutes } from '@src/routes/Onboarding'
import { Settings } from '@src/routes/Settings' import { Settings } from '@src/routes/Settings'
import SignIn from '@src/routes/SignIn' import SignIn from '@src/routes/SignIn'
import { Telemetry } from '@src/routes/Telemetry' import { Telemetry } from '@src/routes/Telemetry'
import RootLayout from "@src/Root"
const createRouter = isDesktop() ? createHashRouter : createBrowserRouter const createRouter = isDesktop() ? createHashRouter : createBrowserRouter
@ -57,10 +49,10 @@ const router = createRouter([
{ {
id: PATHS.INDEX, id: PATHS.INDEX,
element: <RootLayout />, element: <RootLayout />,
errorElement: <ErrorPage />,
children: [ children: [
{ {
path: PATHS.INDEX, path: PATHS.INDEX,
errorElement: <ErrorPage />,
loader: async ({ request }) => { loader: async ({ request }) => {
const onDesktop = isDesktop() const onDesktop = isDesktop()
const url = new URL(request.url) const url = new URL(request.url)
@ -81,6 +73,7 @@ const router = createRouter([
loader: fileLoader, loader: fileLoader,
id: PATHS.FILE, id: PATHS.FILE,
path: PATHS.FILE + '/:id', path: PATHS.FILE + '/:id',
errorElement: <ErrorPage />,
element: ( element: (
<Auth> <Auth>
<FileMachineProvider> <FileMachineProvider>
@ -127,6 +120,7 @@ const router = createRouter([
}, },
{ {
path: PATHS.HOME, path: PATHS.HOME,
errorElement: <ErrorPage />,
element: ( element: (
<Auth> <Auth>
<Outlet /> <Outlet />
@ -155,6 +149,7 @@ const router = createRouter([
}, },
{ {
path: PATHS.SIGN_IN, path: PATHS.SIGN_IN,
errorElement: <ErrorPage />,
element: <SignIn />, element: <SignIn />,
}, },
], ],

View File

@ -3,22 +3,23 @@ import { systemIOActor } from '@src/machines/appMachine'
import { useSelector } from '@xstate/react' import { useSelector } from '@xstate/react'
import { useEffect } from 'react' import { useEffect } from 'react'
import { useNavigate } from 'react-router-dom' import { useNavigate } from 'react-router-dom'
import { export const useRequestedProjectName = () =>
NO_PROJECT_DIRECTORY, useSelector(systemIOActor, (state) => state.context.requestedProjectName)
SystemIOMachineEvents export const useProjectDirectoryPath = () =>
} from '@src/machines/systemIO/utils' useSelector(systemIOActor, (state) => state.context.projectDirectoryPath)
export const useRequestedProjectName = () => useSelector(systemIOActor, (state) => state.context.requestedProjectName)
export const useProjectDirectoryPath = () => useSelector(systemIOActor, (state) => state.context.projectDirectoryPath)
export function SystemIOMachineLogicListener() { export function SystemIOMachineLogicListener() {
const requestedProjectName = useRequestedProjectName() const requestedProjectName = useRequestedProjectName()
const projectDirectoryPath = useProjectDirectoryPath() const projectDirectoryPath = useProjectDirectoryPath()
const navigate = useNavigate() const navigate = useNavigate()
useEffect(() => { useEffect(() => {
if (!requestedProjectName.name) {return} if (!requestedProjectName.name) {
return
}
let projectPathWithoutSpecificKCLFile = let projectPathWithoutSpecificKCLFile =
projectDirectoryPath + window.electron.path.sep + requestedProjectName.name projectDirectoryPath +
window.electron.path.sep +
requestedProjectName.name
const requestedPath = `${PATHS.FILE}/${encodeURIComponent( const requestedPath = `${PATHS.FILE}/${encodeURIComponent(
projectPathWithoutSpecificKCLFile projectPathWithoutSpecificKCLFile
)}` )}`

View File

@ -1,7 +1,6 @@
import { DEFAULT_PROJECT_NAME } from '@src/lib/constants' import { DEFAULT_PROJECT_NAME } from '@src/lib/constants'
import type { Project } from '@src/lib/project' import type { Project } from '@src/lib/project'
import type { import type { SystemIOContext } from '@src/machines/systemIO/utils'
SystemIOContext} from '@src/machines/systemIO/utils'
import { import {
NO_PROJECT_DIRECTORY, NO_PROJECT_DIRECTORY,
SystemIOMachineActions, SystemIOMachineActions,
@ -37,7 +36,7 @@ export const systemIOMachine = setup({
| { | {
type: SystemIOMachineEvents.openProject type: SystemIOMachineEvents.openProject
data: { requestedProjectName: string } data: { requestedProjectName: string }
} },
}, },
actions: { actions: {
[SystemIOMachineActions.setFolders]: assign({ [SystemIOMachineActions.setFolders]: assign({
@ -112,8 +111,7 @@ export const systemIOMachine = setup({
}, },
}, },
}, },
[SystemIOMachineStates.openingProject] : { [SystemIOMachineStates.openingProject]: {},
}
}, },
}) })

View File

@ -1,8 +1,7 @@
import { getProjectInfo, mkdirOrNOOP } from '@src/lib/desktop' import { getProjectInfo, mkdirOrNOOP } from '@src/lib/desktop'
import type { Project } from '@src/lib/project' import type { Project } from '@src/lib/project'
import { systemIOMachine } from '@src/machines/systemIO/systemIOMachine' import { systemIOMachine } from '@src/machines/systemIO/systemIOMachine'
import type { import type { SystemIOContext } from '@src/machines/systemIO/utils'
SystemIOContext} from '@src/machines/systemIO/utils'
import { import {
NO_PROJECT_DIRECTORY, NO_PROJECT_DIRECTORY,
SystemIOMachineActors, SystemIOMachineActors,

View File

@ -1,10 +1,7 @@
import type { Project } from '@src/lib/project' import type { Project } from '@src/lib/project'
import { systemIOMachine } from '@src/machines/systemIO/systemIOMachine' import { systemIOMachine } from '@src/machines/systemIO/systemIOMachine'
import type { import type { SystemIOContext } from '@src/machines/systemIO/utils'
SystemIOContext} from '@src/machines/systemIO/utils' import { SystemIOMachineActors } from '@src/machines/systemIO/utils'
import {
SystemIOMachineActors,
} from '@src/machines/systemIO/utils'
import { fromPromise } from 'xstate' import { fromPromise } from 'xstate'
export const systemIOMachineWeb = systemIOMachine.provide({ export const systemIOMachineWeb = systemIOMachine.provide({

View File

@ -9,7 +9,7 @@ export enum SystemIOMachineStates {
idle = 'idle', idle = 'idle',
readingFolders = 'readingFolders', readingFolders = 'readingFolders',
settingProjectDirectoryPath = 'settingProjectDirectoryPath', settingProjectDirectoryPath = 'settingProjectDirectoryPath',
openingProject = 'openingProject' openingProject = 'openingProject',
} }
const donePrefix = 'xstate.done.actor.' const donePrefix = 'xstate.done.actor.'