This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
|||||||
getLauncherSource,
|
getLauncherSource,
|
||||||
listGiteaCommits,
|
listGiteaCommits,
|
||||||
listLauncherVersions,
|
listLauncherVersions,
|
||||||
|
listPlatformRepos,
|
||||||
listStudioRepos,
|
listStudioRepos,
|
||||||
updateLauncherSource,
|
updateLauncherSource,
|
||||||
type GiteaCommit,
|
type GiteaCommit,
|
||||||
@@ -31,7 +32,7 @@ const targetLabels: Record<SourceTarget, { title: string; description: string; d
|
|||||||
'launcher-client': {
|
'launcher-client': {
|
||||||
title: '클라이언트',
|
title: '클라이언트',
|
||||||
description: '사용자 PC에 설치되는 Electron .deb 빌드 소스입니다.',
|
description: '사용자 PC에 설치되는 Electron .deb 빌드 소스입니다.',
|
||||||
defaultOrg: 'studio'
|
defaultOrg: 'platform'
|
||||||
},
|
},
|
||||||
'launcher-backend': {
|
'launcher-backend': {
|
||||||
title: '백엔드',
|
title: '백엔드',
|
||||||
@@ -117,6 +118,8 @@ export function LauncherSourcePage() {
|
|||||||
const { toast } = useToast();
|
const { toast } = useToast();
|
||||||
const [activeTarget, setActiveTarget] = useState<SourceTarget>('launcher-client');
|
const [activeTarget, setActiveTarget] = useState<SourceTarget>('launcher-client');
|
||||||
const [versions, setVersions] = useState<LauncherVersion[]>([]);
|
const [versions, setVersions] = useState<LauncherVersion[]>([]);
|
||||||
|
const [platformRepos, setPlatformRepos] = useState<GiteaRepo[]>([]);
|
||||||
|
const [studioRepos, setStudioRepos] = useState<GiteaRepo[]>([]);
|
||||||
const [repos, setRepos] = useState<GiteaRepo[]>([]);
|
const [repos, setRepos] = useState<GiteaRepo[]>([]);
|
||||||
const [forms, setForms] = useState<Record<SourceTarget, SourceForm>>({
|
const [forms, setForms] = useState<Record<SourceTarget, SourceForm>>({
|
||||||
'launcher-client': emptyForm(),
|
'launcher-client': emptyForm(),
|
||||||
@@ -146,14 +149,16 @@ export function LauncherSourcePage() {
|
|||||||
|
|
||||||
const refresh = () => {
|
const refresh = () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
Promise.all([listLauncherVersions(), listStudioRepos(), getLauncherSource()])
|
Promise.all([listLauncherVersions(), listPlatformRepos(), listStudioRepos(), getLauncherSource()])
|
||||||
.then(([nextVersions, studioRepos, sourceResult]) => {
|
.then(([nextVersions, platformRepos, studioRepos, sourceResult]) => {
|
||||||
const nextVersion = nextVersions.find((version) => version.isActive) ?? nextVersions[0];
|
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]) : '');
|
const backendRepository = sourceResult.source.backend?.repository ?? (studioRepos[0] ? repoFullName(studioRepos[0]) : '');
|
||||||
|
|
||||||
setVersions(nextVersions);
|
setVersions(nextVersions);
|
||||||
setRepos(studioRepos);
|
setPlatformRepos(platformRepos);
|
||||||
|
setStudioRepos(studioRepos);
|
||||||
|
setRepos(activeTarget === 'launcher-client' ? platformRepos : studioRepos);
|
||||||
setForms({
|
setForms({
|
||||||
'launcher-client': {
|
'launcher-client': {
|
||||||
repository: clientRepository,
|
repository: clientRepository,
|
||||||
@@ -175,6 +180,10 @@ export function LauncherSourcePage() {
|
|||||||
refresh();
|
refresh();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setRepos(activeTarget === 'launcher-client' ? platformRepos : studioRepos);
|
||||||
|
}, [activeTarget, platformRepos, studioRepos]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const repository = splitRepository(activeForm.repository, activeTargetMeta.defaultOrg);
|
const repository = splitRepository(activeForm.repository, activeTargetMeta.defaultOrg);
|
||||||
if (!repository) {
|
if (!repository) {
|
||||||
|
|||||||
Reference in New Issue
Block a user