From fdff266afaf7f3c65d7c48a6bc2ca38ae66f8601 Mon Sep 17 00:00:00 2001 From: j8seangel Date: Wed, 14 Aug 2024 17:39:27 +0200 Subject: [PATCH] download data error handling --- .../download/DownloadActivityByVessel.tsx | 25 ++++----- .../download/DownloadActivityEnvironment.tsx | 18 ++---- .../download/DownloadActivityError.tsx | 55 +++++++++++++++++++ .../download/DownloadActivityGridded.tsx | 19 ++----- .../download/downloadActivity.slice.ts | 39 ++++++++++--- apps/fishing-map/features/reports/Report.tsx | 12 ++-- .../public/locales/source/translations.json | 1 + 7 files changed, 115 insertions(+), 54 deletions(-) create mode 100644 apps/fishing-map/features/download/DownloadActivityError.tsx diff --git a/apps/fishing-map/features/download/DownloadActivityByVessel.tsx b/apps/fishing-map/features/download/DownloadActivityByVessel.tsx index 8f0d3b7589..289c43b891 100644 --- a/apps/fishing-map/features/download/DownloadActivityByVessel.tsx +++ b/apps/fishing-map/features/download/DownloadActivityByVessel.tsx @@ -18,7 +18,7 @@ import { selectIsDownloadActivityError, DateRange, selectDownloadActivityAreaKey, - selectIsDownloadAreaTooBig, + selectIsDownloadActivityTimeoutError, } from 'features/download/downloadActivity.slice' import { EMPTY_FIELD_PLACEHOLDER } from 'utils/info' import { TimelineDatesRange } from 'features/map/controls/MapInfo' @@ -56,6 +56,7 @@ import { getSupportedGroupByOptions, getSupportedTemporalResolutions, } from './download.utils' +import ActivityDownloadError, { useActivityDownloadTimeoutRefresh } from './DownloadActivityError' function DownloadActivityByVessel() { const { t } = useTranslation() @@ -71,7 +72,7 @@ function DownloadActivityByVessel() { const isDownloadLoading = useSelector(selectIsDownloadActivityLoading) const isDownloadError = useSelector(selectIsDownloadActivityError) const isDownloadFinished = useSelector(selectIsDownloadActivityFinished) - const isDownloadAreaTooBig = useSelector(selectIsDownloadAreaTooBig) + const isDownloadTimeoutError = useSelector(selectIsDownloadActivityTimeoutError) const [format, setFormat] = useState(VESSEL_FORMAT_OPTIONS[0].id) const isDownloadReportSupported = getDownloadReportSupported(start, end) const downloadAreaKey = useSelector(selectDownloadActivityAreaKey) @@ -146,7 +147,7 @@ function DownloadActivityByVessel() { bufferValue, bufferOperation, } - await dispatch(downloadActivityThunk(downloadParams)) + const action = await dispatch(downloadActivityThunk(downloadParams)) trackEvent({ category: TrackCategory.DataDownloads, @@ -158,9 +159,14 @@ function DownloadActivityByVessel() { .flat(), ]), }) + return action } + + useActivityDownloadTimeoutRefresh(onDownloadClick) + const parsedLabel = typeof downloadAreaName === 'string' ? parse(downloadAreaName) : downloadAreaName + return (
@@ -226,20 +232,11 @@ function DownloadActivityByVessel() { ))}

) : null} - {isDownloadError && ( -

- {isDownloadAreaTooBig - ? `${t( - 'analysis.errorTooComplex', - 'The geometry of the area is too complex to perform a report, try to simplify and upload again.' - )}` - : `${t('analysis.errorMessage', 'Something went wrong')} 🙈`} -

- )} + {isDownloadError && }