tidy(ui): cleanup after events change

This commit is contained in:
psychedelicious
2024-08-17 15:41:34 +10:00
parent 82b1d8dab8
commit 7bf0e554ea
18 changed files with 12 additions and 865 deletions

View File

@@ -21,7 +21,7 @@ export const getImageUsage = (nodes: NodesState, canvasV2: CanvasV2State, image_
some(node.data.inputs, (input) => isImageFieldInputInstance(input) && input.value?.image_name === image_name)
);
const isControlAdapterImage = canvasV2.controlAdapters.entities.some(
const isControlAdapterImage = canvasV2.controlLayers.entities.some(
(ca) => ca.imageObject?.image.image_name === image_name || ca.processedImageObject?.image.image_name === image_name
);

View File

@@ -2,25 +2,13 @@ import type { PayloadAction } from '@reduxjs/toolkit';
import { createSlice } from '@reduxjs/toolkit';
import type { PersistConfig, RootState } from 'app/store/store';
import type { LogLevelName } from 'roarr';
import {
socketConnected,
socketDisconnected,
socketGeneratorProgress,
socketInvocationComplete,
socketInvocationStarted,
socketModelLoadComplete,
socketModelLoadStarted,
socketQueueItemStatusChanged,
} from 'services/events/actions';
import type { Language, SystemState } from './types';
const initialSystemState: SystemState = {
_version: 1,
isConnected: false,
shouldConfirmOnDelete: true,
enableImageDebugging: false,
denoiseProgress: null,
shouldAntialiasProgressImage: false,
consoleLogLevel: 'debug',
shouldLogToConsole: true,
@@ -28,8 +16,6 @@ const initialSystemState: SystemState = {
shouldUseNSFWChecker: false,
shouldUseWatermarker: false,
shouldEnableInformationalPopovers: true,
status: 'DISCONNECTED',
cancellations: [],
};
export const systemSlice = createSlice({
@@ -64,82 +50,6 @@ export const systemSlice = createSlice({
state.shouldEnableInformationalPopovers = action.payload;
},
},
extraReducers(builder) {
/**
* Socket Connected
*/
builder.addCase(socketConnected, (state) => {
state.isConnected = true;
state.denoiseProgress = null;
state.status = 'CONNECTED';
});
/**
* Socket Disconnected
*/
builder.addCase(socketDisconnected, (state) => {
state.isConnected = false;
state.denoiseProgress = null;
state.status = 'DISCONNECTED';
});
/**
* Invocation Started
*/
builder.addCase(socketInvocationStarted, (state) => {
state.cancellations = [];
state.denoiseProgress = null;
state.status = 'PROCESSING';
});
/**
* Generator Progress
*/
builder.addCase(socketGeneratorProgress, (state, action) => {
const { step, total_steps, progress_image, session_id, batch_id, percentage } = action.payload.data;
if (state.cancellations.includes(session_id)) {
// Do not update the progress if this session has been cancelled. This prevents a race condition where we get a
// progress update after the session has been cancelled.
return;
}
state.denoiseProgress = {
step,
total_steps,
percentage,
progress_image,
session_id,
batch_id,
};
state.status = 'PROCESSING';
});
/**
* Invocation Complete
*/
builder.addCase(socketInvocationComplete, (state) => {
state.denoiseProgress = null;
state.status = 'CONNECTED';
});
builder.addCase(socketModelLoadStarted, (state) => {
state.status = 'LOADING_MODEL';
});
builder.addCase(socketModelLoadComplete, (state) => {
state.status = 'CONNECTED';
});
builder.addCase(socketQueueItemStatusChanged, (state, action) => {
if (['completed', 'canceled', 'failed'].includes(action.payload.data.status)) {
state.status = 'CONNECTED';
state.denoiseProgress = null;
state.cancellations.push(action.payload.data.session_id);
}
});
},
});
export const {
@@ -168,5 +78,5 @@ export const systemPersistConfig: PersistConfig<SystemState> = {
name: systemSlice.name,
initialState: initialSystemState,
migrate: migrateSystemState,
persistDenylist: ['isConnected', 'denoiseProgress', 'status', 'cancellations'],
persistDenylist: [],
};

View File

@@ -1,18 +1,6 @@
import type { LogLevel } from 'app/logging/logger';
import type { ProgressImage } from 'services/events/types';
import { z } from 'zod';
type SystemStatus = 'CONNECTED' | 'DISCONNECTED' | 'PROCESSING' | 'ERROR' | 'LOADING_MODEL';
type DenoiseProgress = {
session_id: string;
batch_id: string;
progress_image: ProgressImage | null | undefined;
step: number;
total_steps: number;
percentage: number;
};
const zLanguage = z.enum([
'ar',
'az',
@@ -42,17 +30,13 @@ export const isLanguage = (v: unknown): v is Language => zLanguage.safeParse(v).
export interface SystemState {
_version: 1;
isConnected: boolean;
shouldConfirmOnDelete: boolean;
enableImageDebugging: boolean;
denoiseProgress: DenoiseProgress | null;
consoleLogLevel: LogLevel;
shouldLogToConsole: boolean;
shouldAntialiasProgressImage: boolean;
language: Language;
shouldUseNSFWChecker: boolean;
shouldUseWatermarker: boolean;
status: SystemStatus;
shouldEnableInformationalPopovers: boolean;
cancellations: string[];
}