Skip to content

Commit 0e68e5d

Browse files
committed
Wizard: Add status polling for pending repositories
Custom repositories, if in state "Pending", were stuck in it unless user clicked the "Refresh" button manually. Add automatic polling for status to remedy this.
1 parent aba98c1 commit 0e68e5d

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

src/Components/CreateImageWizard/steps/Repositories/Repositories.tsx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ const Repositories = () => {
9595
'toggle-group-all' | 'toggle-group-selected'
9696
>('toggle-group-all');
9797
const [isTemplateSelected, setIsTemplateSelected] = useState(false);
98+
const [isStatusPollingEnabled, setIsStatusPollingEnabled] = useState(false);
9899

99100
const isSharedEPELEnabled = useFlag('image-builder.shared-epel.enabled');
100101

@@ -197,9 +198,21 @@ const Repositories = () => {
197198
? [...selected].join(',')
198199
: '',
199200
},
200-
{ refetchOnMountOrArgChange: 60, skip: isTemplateSelected },
201+
{
202+
refetchOnMountOrArgChange: 60,
203+
skip: isTemplateSelected,
204+
pollingInterval: isStatusPollingEnabled ? 8000 : 0,
205+
},
201206
);
202207

208+
useEffect(() => {
209+
if (contentList.some((repo) => repo.status === 'Pending')) {
210+
setIsStatusPollingEnabled(true);
211+
} else {
212+
setIsStatusPollingEnabled(false);
213+
}
214+
}, [contentList]);
215+
203216
const refresh = () => {
204217
// In case the user deletes an intially selected repository.
205218
// Refetching will react to both added and removed repositories.
@@ -595,9 +608,11 @@ const Repositories = () => {
595608
variant='primary'
596609
isInline
597610
onClick={() => refresh()}
598-
isLoading={isFetching}
611+
isLoading={isFetching && !isStatusPollingEnabled}
599612
>
600-
{isFetching ? 'Refreshing' : 'Refresh'}
613+
{isFetching && !isStatusPollingEnabled
614+
? 'Refreshing'
615+
: 'Refresh'}
601616
</Button>
602617
</ToolbarItem>
603618
<ToolbarItem>

0 commit comments

Comments
 (0)