feat(ui): cancel by destination, not origin

This commit is contained in:
psychedelicious
2024-09-06 10:31:29 +10:00
parent 160f54d1ea
commit e148cc810b
3 changed files with 16 additions and 9 deletions

View File

@@ -1,10 +1,11 @@
import { isAnyOf } from '@reduxjs/toolkit';
import { logger } from 'app/logging/logger';
import type { AppStartListening } from 'app/store/middleware/listenerMiddleware';
import {
sessionStagingAreaImageAccepted,
sessionStagingAreaReset,
} from 'features/controlLayers/store/canvasSessionSlice';
import { rasterLayerAdded } from 'features/controlLayers/store/canvasSlice';
import { canvasReset, rasterLayerAdded } from 'features/controlLayers/store/canvasSlice';
import { selectCanvasSlice } from 'features/controlLayers/store/selectors';
import type { CanvasRasterLayerState } from 'features/controlLayers/store/types';
import { imageDTOToImageObject } from 'features/controlLayers/store/types';
@@ -16,14 +17,16 @@ import { assert } from 'tsafe';
const log = logger('canvas');
const matchCanvasOrStagingAreaRest = isAnyOf(sessionStagingAreaReset, canvasReset);
export const addStagingListeners = (startAppListening: AppStartListening) => {
startAppListening({
actionCreator: sessionStagingAreaReset,
matcher: matchCanvasOrStagingAreaRest,
effect: async (_, { dispatch }) => {
try {
const req = dispatch(
queueApi.endpoints.cancelByBatchOrigin.initiate(
{ origin: 'canvas' },
queueApi.endpoints.cancelByBatchDestination.initiate(
{ destination: 'canvas' },
{ fixedCacheKey: 'cancelByBatchOrigin' }
)
);

View File

@@ -1,6 +1,7 @@
import { createAction, createSelector, createSlice, type PayloadAction } from '@reduxjs/toolkit';
import type { PersistConfig, RootState } from 'app/store/store';
import { canvasSlice } from 'features/controlLayers/store/canvasSlice';
import { deepClone } from 'common/util/deepClone';
import { canvasReset, canvasSlice } from 'features/controlLayers/store/canvasSlice';
import type { StagingAreaImage } from 'features/controlLayers/store/types';
type CanvasSessionState = {
@@ -50,6 +51,9 @@ export const canvasSessionSlice = createSlice({
state.selectedStagedImageIndex = 0;
},
},
extraReducers(builder) {
builder.addCase(canvasReset, () => deepClone(initialState));
},
});
export const {

View File

@@ -276,12 +276,12 @@ export const queueApi = api.injectEndpoints({
},
invalidatesTags: ['SessionQueueStatus', 'BatchStatus'],
}),
cancelByBatchOrigin: build.mutation<
paths['/api/v1/queue/{queue_id}/cancel_by_origin']['put']['responses']['200']['content']['application/json'],
paths['/api/v1/queue/{queue_id}/cancel_by_origin']['put']['parameters']['query']
cancelByBatchDestination: build.mutation<
paths['/api/v1/queue/{queue_id}/cancel_by_destination']['put']['responses']['200']['content']['application/json'],
paths['/api/v1/queue/{queue_id}/cancel_by_destination']['put']['parameters']['query']
>({
query: (params) => ({
url: buildQueueUrl('cancel_by_origin'),
url: buildQueueUrl('cancel_by_destination'),
method: 'PUT',
params,
}),