improve admin build release and notice screens
This commit is contained in:
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user