Files
modeling-app/src/components/Providers/SystemIOProviderDesktop.tsx

29 lines
1.1 KiB
TypeScript
Raw Normal View History

2025-04-09 09:46:30 -05:00
import { PATHS } from '@src/lib/paths'
import { systemIOActor } from '@src/machines/appMachine'
import { useSelector } from '@xstate/react'
import { useEffect } from 'react'
import { useNavigate } from 'react-router-dom'
import {
NO_PROJECT_DIRECTORY,
SystemIOMachineEvents
2025-04-09 09:46:30 -05:00
} from '@src/machines/systemIO/utils'
export const useRequestedProjectName = () => useSelector(systemIOActor, (state) => state.context.requestedProjectName)
export const useProjectDirectoryPath = () => useSelector(systemIOActor, (state) => state.context.projectDirectoryPath)
2025-04-09 09:46:30 -05:00
export function SystemIOMachineLogicListener() {
const requestedProjectName = useRequestedProjectName()
const projectDirectoryPath = useProjectDirectoryPath()
const navigate = useNavigate()
2025-04-09 09:46:30 -05:00
useEffect(() => {
if (!requestedProjectName.name) {return}
let projectPathWithoutSpecificKCLFile =
projectDirectoryPath + window.electron.path.sep + requestedProjectName.name
const requestedPath = `${PATHS.FILE}/${encodeURIComponent(
projectPathWithoutSpecificKCLFile
2025-04-09 09:46:30 -05:00
)}`
navigate(requestedPath)
}, [requestedProjectName])
2025-04-09 09:46:30 -05:00
return null
}