diff --git a/src/pages/launcher/LauncherSourcePage.tsx b/src/pages/launcher/LauncherSourcePage.tsx index 9e94b1e..84d334b 100644 --- a/src/pages/launcher/LauncherSourcePage.tsx +++ b/src/pages/launcher/LauncherSourcePage.tsx @@ -10,6 +10,7 @@ import { getLauncherSource, listGiteaCommits, listLauncherVersions, + listPlatformRepos, listStudioRepos, updateLauncherSource, type GiteaCommit, @@ -31,7 +32,7 @@ const targetLabels: Record('launcher-client'); const [versions, setVersions] = useState([]); + const [platformRepos, setPlatformRepos] = useState([]); + const [studioRepos, setStudioRepos] = useState([]); const [repos, setRepos] = useState([]); const [forms, setForms] = useState>({ 'launcher-client': emptyForm(), @@ -146,14 +149,16 @@ export function LauncherSourcePage() { const refresh = () => { setLoading(true); - Promise.all([listLauncherVersions(), listStudioRepos(), getLauncherSource()]) - .then(([nextVersions, studioRepos, sourceResult]) => { + Promise.all([listLauncherVersions(), listPlatformRepos(), listStudioRepos(), getLauncherSource()]) + .then(([nextVersions, platformRepos, studioRepos, sourceResult]) => { const nextVersion = nextVersions.find((version) => version.isActive) ?? nextVersions[0]; - const clientRepository = sourceResult.source.client?.repository ?? sourceResult.source.repository ?? nextVersion?.repository ?? (studioRepos[0] ? repoFullName(studioRepos[0]) : ''); + const clientRepository = sourceResult.source.client?.repository ?? sourceResult.source.repository ?? nextVersion?.repository ?? (platformRepos[0] ? repoFullName(platformRepos[0]) : ''); const backendRepository = sourceResult.source.backend?.repository ?? (studioRepos[0] ? repoFullName(studioRepos[0]) : ''); setVersions(nextVersions); - setRepos(studioRepos); + setPlatformRepos(platformRepos); + setStudioRepos(studioRepos); + setRepos(activeTarget === 'launcher-client' ? platformRepos : studioRepos); setForms({ 'launcher-client': { repository: clientRepository, @@ -175,6 +180,10 @@ export function LauncherSourcePage() { refresh(); }, []); + useEffect(() => { + setRepos(activeTarget === 'launcher-client' ? platformRepos : studioRepos); + }, [activeTarget, platformRepos, studioRepos]); + useEffect(() => { const repository = splitRepository(activeForm.repository, activeTargetMeta.defaultOrg); if (!repository) {