improve admin build release and notice screens

This commit is contained in:
2026-07-03 10:14:58 +09:00
parent 113bbd0abd
commit 98726c5605
2 changed files with 23 additions and 2 deletions
@@ -87,6 +87,7 @@ export function BuildManagementPage() {
const selectedComponent = componentOptions.find((source) => source.id === selectedComponentId) ?? componentOptions[0];
const selectedTarget = selectedComponent?.buildTarget || buildTargetForType(selectedComponent?.type);
const predicted = predictedArtifact(selectedComponent, branch, commitSha);
const hasActiveJob = jobs.some((job) => job.status === 'PENDING' || job.status === 'RUNNING');
const refresh = async () => {
setLoading(true);
@@ -112,6 +113,26 @@ export function BuildManagementPage() {
void refresh();
}, [selectedAppId, selectedApp?.key]);
useEffect(() => {
if (!hasActiveJob) return;
const timer = window.setInterval(() => {
listBuildJobs(selectedApp?.key)
.then((nextJobs) => setJobs(nextJobs))
.catch((error: Error) => {
toast({ type: 'error', message: `빌드 작업 갱신 실패: ${error.message}` });
});
}, 2000);
return () => window.clearInterval(timer);
}, [hasActiveJob, selectedApp?.key, toast]);
useEffect(() => {
if (!selectedJob) return;
const nextSelectedJob = jobs.find((job) => job.id === selectedJob.id);
if (nextSelectedJob && nextSelectedJob !== selectedJob) {
setSelectedJob(nextSelectedJob);
}
}, [jobs, selectedJob]);
useEffect(() => {
if (!componentOptions.some((source) => source.id === selectedComponentId)) {
const nextComponent = componentOptions[0];