Skip to content

Commit c8eb67a

Browse files
Mary Hipppsychedelicious
authored andcommitted
create listener for imageMetdataReceived to swap our progressImage
1 parent 0c3b4bb commit c8eb67a

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { addSocketDisconnectedListener } from './listeners/socketio/socketDiscon
2828
import { addSocketSubscribedListener } from './listeners/socketio/socketSubscribed';
2929
import { addSocketUnsubscribedListener } from './listeners/socketio/socketUnsubscribed';
3030
import { addSessionReadyToInvokeListener } from './listeners/sessionReadyToInvoke';
31+
import { addImageMetadataReceivedListener } from './listeners/imageMetadataReceived';
3132

3233
export const listenerMiddleware = createListenerMiddleware();
3334

@@ -50,6 +51,7 @@ export type AppListenerEffect = ListenerEffect<
5051
addImageUploadedListener();
5152
addInitialImageSelectedListener();
5253
addRequestedImageDeletionListener();
54+
addImageMetadataReceivedListener();
5355

5456
addUserInvokedCanvasListener();
5557
addUserInvokedNodesListener();
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { invocationComplete } from 'services/events/actions';
2+
import { isImageOutput } from 'services/types/guards';
3+
import { imageMetadataReceived } from 'services/thunks/image';
4+
import { startAppListening } from '..';
5+
import { progressImageSet } from '../../../../../features/system/store/systemSlice';
6+
7+
export const addImageMetadataReceivedListener = () => {
8+
startAppListening({
9+
predicate: (action) => {
10+
if (
11+
invocationComplete.match(action) &&
12+
isImageOutput(action.payload.data.result)
13+
) {
14+
return true;
15+
}
16+
return false;
17+
},
18+
effect: async (action, { getState, dispatch, take }) => {
19+
if (imageMetadataReceived.fulfilled.match(action)) {
20+
return;
21+
}
22+
23+
dispatch(progressImageSet(null));
24+
},
25+
});
26+
};

invokeai/frontend/web/src/features/system/store/systemSlice.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,9 @@ export const systemSlice = createSlice({
215215
languageChanged: (state, action: PayloadAction<keyof typeof LANGUAGES>) => {
216216
state.language = action.payload;
217217
},
218+
progressImageSet(state, action: PayloadAction<ProgressImage | null>) {
219+
state.progressImage = action.payload;
220+
},
218221
},
219222
extraReducers(builder) {
220223
/**
@@ -305,7 +308,6 @@ export const systemSlice = createSlice({
305308
state.currentStep = 0;
306309
state.totalSteps = 0;
307310
state.statusTranslationKey = 'common.statusProcessingComplete';
308-
state.progressImage = null;
309311

310312
if (state.canceledSession === data.graph_execution_state_id) {
311313
state.isProcessing = false;
@@ -438,6 +440,7 @@ export const {
438440
isPersistedChanged,
439441
shouldAntialiasProgressImageChanged,
440442
languageChanged,
443+
progressImageSet,
441444
} = systemSlice.actions;
442445

443446
export default systemSlice.reducer;

0 commit comments

Comments
 (0)