diff --git a/frontend/src/pages/SettingsScheduling.tsx b/frontend/src/pages/SettingsScheduling.tsx index b56f7697..b2d064b5 100644 --- a/frontend/src/pages/SettingsScheduling.tsx +++ b/frontend/src/pages/SettingsScheduling.tsx @@ -15,6 +15,32 @@ import createAppriseNotificationUrl, { import deleteAppriseNotificationUrl from '../api/actions/deleteAppriseNotificationUrl'; import { ApiError, ApiResponseType } from '../functions/APIClient'; +const getGroupedSchedule = ( + scheduleResponse: ApiResponseType | undefined, +) => { + const { data: scheduleResponseData } = scheduleResponse ?? {}; + + const groupedSchedules = Object.groupBy(scheduleResponseData || [], ({ name }) => name); + + const { update_subscribed, download_pending, run_backup, check_reindex, thumbnail_check } = + groupedSchedules; + + const updateSubscribedSchedule = update_subscribed?.pop(); + const downloadPendingSchedule = download_pending?.pop(); + const runBackup = run_backup?.pop(); + const checkReindexSchedule = check_reindex?.pop(); + const thumbnailCheckSchedule = thumbnail_check?.pop(); + + return { + updateSubscribedSchedule, + downloadPendingSchedule, + runBackup, + checkReindexSchedule, + thumbnailCheckSchedule, + download_pending, + }; +}; + const SettingsScheduling = () => { const [refresh, setRefresh] = useState(false); @@ -37,7 +63,6 @@ const SettingsScheduling = () => { const [thumnailCheckError, setThumnailCheckError] = useState(null); const [zipBackupError, setZipBackupError] = useState(null); - const { data: scheduleResponseData } = scheduleResponse ?? {}; const { data: appriseNotificationData } = appriseNotification ?? {}; useEffect(() => { @@ -49,6 +74,22 @@ const SettingsScheduling = () => { setScheduleResponse(scheduleResponse); setAppriseNotification(appriseNotificationResponse); + const { + checkReindexSchedule, + downloadPendingSchedule, + runBackup, + thumbnailCheckSchedule, + updateSubscribedSchedule, + } = getGroupedSchedule(scheduleResponse); + + setUpdateSubscribed(updateSubscribedSchedule?.schedule || ''); + setDownloadPending(downloadPendingSchedule?.schedule || ''); + setCheckReindex(checkReindexSchedule?.schedule || ''); + setCheckReindexDays(checkReindexSchedule?.config?.days || 0); + setThumbnailCheck(thumbnailCheckSchedule?.schedule || ''); + setZipBackup(runBackup?.schedule || ''); + setZipBackupDays(runBackup?.config?.rotate || 0); + setRefresh(false); } })(); @@ -58,18 +99,14 @@ const SettingsScheduling = () => { setRefresh(true); }, []); - const groupedSchedules = Object.groupBy(scheduleResponseData || [], ({ name }) => name); - - console.log(groupedSchedules); - - const { update_subscribed, download_pending, run_backup, check_reindex, thumbnail_check } = - groupedSchedules; - - const updateSubscribedSchedule = update_subscribed?.pop(); - const downloadPendingSchedule = download_pending?.pop(); - const runBackup = run_backup?.pop(); - const checkReindexSchedule = check_reindex?.pop(); - const thumbnailCheckSchedule = thumbnail_check?.pop(); + const { + checkReindexSchedule, + downloadPendingSchedule, + runBackup, + thumbnailCheckSchedule, + updateSubscribedSchedule, + download_pending, + } = getGroupedSchedule(scheduleResponse); return ( <> @@ -146,7 +183,7 @@ const SettingsScheduling = () => { { setUpdateSubscribed(e.currentTarget.value); }} @@ -201,7 +238,7 @@ const SettingsScheduling = () => { { setDownloadPending(e.currentTarget.value); }} @@ -257,7 +294,7 @@ const SettingsScheduling = () => { { setCheckReindex(e.currentTarget.value); }} @@ -293,7 +330,7 @@ const SettingsScheduling = () => { { setCheckReindexDays(Number(e.currentTarget.value)); }} @@ -342,7 +379,7 @@ const SettingsScheduling = () => { { setThumbnailCheck(e.currentTarget.value); }} @@ -404,7 +441,7 @@ const SettingsScheduling = () => { { setZipBackup(e.currentTarget.value); }} @@ -440,7 +477,7 @@ const SettingsScheduling = () => { { setZipBackupDays(Number(e.currentTarget.value)); }} @@ -525,7 +562,7 @@ const SettingsScheduling = () => { { setNotificationUrl(e.currentTarget.value); }}