From 51ba6ea65521c8bfa953d90f8078684d8293122b Mon Sep 17 00:00:00 2001 From: fhfuih Date: Tue, 10 Mar 2020 18:27:22 -0400 Subject: [PATCH] Refactor "retry all" renderer to avoid hacks --- ElectronClient/gui/StatusScreen.jsx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/ElectronClient/gui/StatusScreen.jsx b/ElectronClient/gui/StatusScreen.jsx index 8e5de29e40..d23e3be5cc 100644 --- a/ElectronClient/gui/StatusScreen.jsx +++ b/ElectronClient/gui/StatusScreen.jsx @@ -55,8 +55,6 @@ class StatusScreenComponent extends React.Component { height: style.height - theme.headerHeight - containerPadding * 2, }); - let retryHandlers = []; - function renderSectionTitleHtml(key, title) { return (

@@ -83,8 +81,6 @@ class StatusScreenComponent extends React.Component { this.resfreshScreen(); }; - retryHandlers.push(item.retryHandler); - retryLink = ( {_('Retry')} @@ -109,13 +105,24 @@ class StatusScreenComponent extends React.Component { return
{itemsHtml}
; }; - function renderRetryAllHtml() { + function renderRetryAllHtml(report) { + let retryHandlers = []; let retryAllLink = null; + + report.forEach(section => { + section.body.forEach(item => { + if (item.canRetry) { + retryHandlers.push(item.retryHandler); + } + }); + }); + if (retryHandlers.length > 1) { const onClick = async () => { await Promise.all(retryHandlers.map(handler => handler())); this.resfreshScreen(); }; + retryAllLink = (
@@ -136,7 +143,7 @@ class StatusScreenComponent extends React.Component { sectionsHtml.push(renderSectionHtml(i, section)); } - let retryAllHtml = renderRetryAllHtml(); // must be called after renderSectionHtml + let retryAllHtml = renderRetryAllHtml(report); return (