From 7dbe4c947a2991bcebddd9bcd2f5036ea6ad0063 Mon Sep 17 00:00:00 2001 From: Alex Komoroske Date: Sun, 12 May 2024 15:21:49 -0700 Subject: [PATCH] Show a user visible error if semanticSort fails. Note the message likely won't be very useful, I presume I'm not unpacking the server side error well. Part of #688. --- src/actions.ts | 7 +++++++ src/actions/bulk-import.ts | 20 ++++++++++++++------ src/reducers/bulk-import.ts | 10 +++++++++- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/actions.ts b/src/actions.ts index 9f4b874c..2995c35c 100644 --- a/src/actions.ts +++ b/src/actions.ts @@ -86,6 +86,7 @@ export const TURN_SUGGEST_MISSING_CONCEPTS = 'TURN_SUGGEST_MISSING_CONCEPTS'; export const BULK_IMPORT_DIALOG_OPEN = 'BULK_IMPORT_DIALOG_OPEN'; export const BULK_IMPORT_PENDING = 'BULK_IMPORT_DIALOG_PENDING'; export const BULK_IMPORT_SUCCESS = 'BULK_IMPORT_SUCCESS'; +export const BULK_IMPORT_FAILURE = 'BULK_IMPORT_FAILURE'; export const BULK_IMPORT_DIALOG_CLOSE = 'BULK_IMPORT_DIAOG_CLOSE'; export const BULK_IMPORT_SET_BODIES = 'BULK_IMPORT_SET_BODIES'; export const BULK_IMPORT_SET_OVERRIDE_CARD_ORDER = 'BULK_IMPORT_SET_OVERRIDE_CARD_ORDER'; @@ -368,6 +369,11 @@ type ActionBulkImportDialogSetOverrideCardOrder = { order: CardID[] }; +type ActionBulkImportFailure = { + type: typeof BULK_IMPORT_FAILURE, + error: string +}; + type ActionBulkImportSuccees = { type: typeof BULK_IMPORT_SUCCESS } @@ -1028,6 +1034,7 @@ export type SomeAction = ActionAIRequestStarted | ActionBulkImportDialogOpen | ActionBulkImportPending | ActionBulkImportSuccees + | ActionBulkImportFailure | ActionBulkImportDialogClose | ActionBulkImportSetBodies | ActionBulkImportDialogSetOverrideCardOrder diff --git a/src/actions/bulk-import.ts b/src/actions/bulk-import.ts index 4efe057d..705f0c97 100644 --- a/src/actions/bulk-import.ts +++ b/src/actions/bulk-import.ts @@ -1,6 +1,7 @@ import { BULK_IMPORT_DIALOG_CLOSE, BULK_IMPORT_DIALOG_OPEN, + BULK_IMPORT_FAILURE, BULK_IMPORT_PENDING, BULK_IMPORT_SET_BODIES, BULK_IMPORT_SET_OVERRIDE_CARD_ORDER, @@ -94,10 +95,17 @@ export const semanticSortExport = () : ThunkSomeAction => async (dispatch, getSt dispatch({ type: BULK_IMPORT_PENDING }); - const result = await semanticSortCallable({cards: cardIDs}); - console.log('Number of swaps made: ', result.data.swaps); - dispatch({ - type: BULK_IMPORT_SET_OVERRIDE_CARD_ORDER, - order: result.data.cards - }); + try { + const result = await semanticSortCallable({cards: cardIDs}); + console.log('Number of swaps made: ', result.data.swaps); + dispatch({ + type: BULK_IMPORT_SET_OVERRIDE_CARD_ORDER, + order: result.data.cards + }); + } catch(e) { + dispatch({ + type: BULK_IMPORT_FAILURE, + error: String(e) + }); + } }; \ No newline at end of file diff --git a/src/reducers/bulk-import.ts b/src/reducers/bulk-import.ts index cbd624b7..2a204034 100644 --- a/src/reducers/bulk-import.ts +++ b/src/reducers/bulk-import.ts @@ -5,7 +5,8 @@ import { BULK_IMPORT_SET_BODIES, BULK_IMPORT_SUCCESS, BULK_IMPORT_SET_OVERRIDE_CARD_ORDER, - SomeAction + SomeAction, + BULK_IMPORT_FAILURE } from '../actions.js'; import { @@ -51,6 +52,13 @@ const app = (state : BulkImportState = INITIAL_STATE, action : SomeAction) : Bul pending: false, open: false }; + case BULK_IMPORT_FAILURE: + //TODO: is it weird to have an alert here? + alert('Failure: ' + action.error); + return { + ...state, + pending: false + }; case BULK_IMPORT_SET_BODIES: return { ...state,