update..
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-07-08 11:04:38 +09:00
parent 68385aedc7
commit 71eeac278f
5 changed files with 81 additions and 9 deletions
@@ -171,6 +171,7 @@ export function ReleaseManagementPage() {
const [totalReleases, setTotalReleases] = useState(0);
const [usedBuildIdValues, setUsedBuildIdValues] = useState<string[]>([]);
const [usedReleaseValueValues, setUsedReleaseValueValues] = useState<string[]>([]);
const hasActiveRelease = releases.some((release) => release.status === 'PENDING' || release.status === 'RUNNING');
const loadingVisible = useMinimumLoading(loading);
const usedValues = useMemo(() => new Set(usedReleaseValueValues), [usedReleaseValueValues]);
const usedBuildIds = useMemo(() => new Set(usedBuildIdValues), [usedBuildIdValues]);
@@ -226,6 +227,28 @@ export function ReleaseManagementPage() {
void refresh();
}, [selectedAppId, page, range, apps]);
useEffect(() => {
if (!hasActiveRelease) return;
const timer = window.setInterval(() => {
listReleasesPage({
appKey: apps.find((app) => app.id === selectedAppId)?.key,
page,
limit: releasePageSize,
since: releaseRangeSince(range)
})
.then((nextReleases) => {
setReleases(nextReleases.releases);
setTotalReleases(nextReleases.total);
setUsedBuildIdValues(nextReleases.usedBuildIds ?? []);
setUsedReleaseValueValues(nextReleases.usedValues ?? []);
})
.catch((error: Error) => {
toast({ type: 'error', message: `릴리즈 목록 갱신 실패: ${error.message}` });
});
}, 2000);
return () => window.clearInterval(timer);
}, [hasActiveRelease, apps, selectedAppId, page, range, toast]);
useEffect(() => {
setPage(1);
}, [selectedAppId, range]);