fix: use actual local platform ID to resolve linked ROS settings

This commit is contained in:
2026-09-30 17:06:26 +09:00
parent 08f74575c2
commit b0a4c2b1e6
4 changed files with 50 additions and 4 deletions
+3 -3
View File
@@ -72,7 +72,7 @@ import { useWorkspaceVisualization } from './features/workspace/useWorkspaceVisu
import { makeModuleParameterKey, readStoredModuleParameters, serializeModuleParameters } from './features/workspace/moduleParameters'
import { parseHostFromUrl, readNestedString } from './features/workspace/remoteWorkspaceTarget'
import { resolveRuntimeModules } from './features/workspace/runtimeModuleSet'
import { defaultStudioSourceSettings, makePlatformWorkspaceRoot, makeTeamWeekWorkspaceRoot, makeWeekWorkspaceRoot, normalizeStudioSourceSettings, readStudioSourceSettings, storeStudioSourceSettings } from './features/workspace/sourceSettings'
import { defaultStudioSourceSettings, makePlatformWorkspaceRoot, makeTeamWeekWorkspaceRoot, makeWeekWorkspaceRoot, normalizeStudioSourceSettings, readLocalStudioSourceSettings, readStudioSourceSettings, storeStudioSourceSettings } from './features/workspace/sourceSettings'
import { makeWorkspaceUiSessionKey, readStudioRuntimeSessionState, storeStudioRuntimeSessionState } from './features/workspace/studioRuntimeSession'
import type { StudioRuntimeSessionState } from './features/workspace/studioRuntimeSession'
import type { ModuleRow, RosNetworkConfig, RuntimeImageArtifact } from './features/workspace/types'
@@ -567,8 +567,8 @@ function LocalPcWorkspaceMockup({
const [sourceSettings, setSourceSettings] = useState<StudioSourceSettings>(() => readStudioSourceSettings(platformId, platformSourceSettingsDefaults))
const [sourceSettingsDraft, setSourceSettingsDraft] = useState<StudioSourceSettings>(() => readStudioSourceSettings(platformId, platformSourceSettingsDefaults))
const localWorkspaceSettings = useMemo(
() => readStudioSourceSettings('futuredrive-local-pc', defaultStudioSourceSettings),
[platformId, sourceSettings.rosLinkedPlatformId, sourceSettings.rosDomainId, sourceSettings.visualizationBridgeLocation],
() => remoteWorkspace ? readLocalStudioSourceSettings(platformOptions) : sourceSettings,
[remoteWorkspace, platformOptions, sourceSettings],
)
const linkedPlatformId = remoteWorkspace
? localWorkspaceSettings.rosLinkedPlatformId
@@ -95,3 +95,12 @@ export function storeStudioSourceSettings(platformId: string, settings: StudioSo
// Local source settings can be re-entered if persistence is unavailable.
}
}
export function readLocalStudioSourceSettings(platforms: Array<{
id: string
platformKey: string
sourceSettings?: Partial<StudioSourceSettings> | null
}>): StudioSourceSettings {
const local = platforms.find((platform) => platform.platformKey === 'futuredrive-local-pc')
return readStudioSourceSettings(local?.id ?? 'local-pc', normalizeStudioSourceSettings(local?.sourceSettings))
}