fix(ui): clear ref images when recalling all

Closes #8202
This commit is contained in:
psychedelicious
2025-07-05 19:09:05 +10:00
parent b6a6d406c7
commit 6bd004d868
2 changed files with 13 additions and 9 deletions

View File

@@ -53,9 +53,13 @@ export const refImagesSlice = createSlice({
payload: { ...payload, id: getPrefixedId('reference_image') },
}),
},
refImageRecalled: (state, action: PayloadAction<{ data: RefImageState }>) => {
const { data } = action.payload;
state.entities.push(data);
refImagesRecalled: (state, action: PayloadAction<{ entities: RefImageState[]; replace: boolean }>) => {
const { entities, replace } = action.payload;
if (replace) {
state.entities = entities;
} else {
state.entities.push(...entities);
}
},
refImageImageChanged: (state, action: PayloadActionWithId<{ imageDTO: ImageDTO | null }>) => {
const { id, imageDTO } = action.payload;
@@ -256,7 +260,7 @@ export const {
refImageIPAdapterBeginEndStepPctChanged,
refImageFLUXReduxImageInfluenceChanged,
refImageIsEnabledToggled,
refImageRecalled,
refImagesRecalled,
} = refImagesSlice.actions;
/* eslint-disable-next-line @typescript-eslint/no-explicit-any */

View File

@@ -32,7 +32,7 @@ import {
shouldConcatPromptsChanged,
vaeSelected,
} from 'features/controlLayers/store/paramsSlice';
import { refImageRecalled } from 'features/controlLayers/store/refImagesSlice';
import { refImagesRecalled } from 'features/controlLayers/store/refImagesSlice';
import type { CanvasMetadata, LoRA, RefImageState } from 'features/controlLayers/store/types';
import { zCanvasMetadata, zCanvasReferenceImageState_OLD, zRefImageState } from 'features/controlLayers/store/types';
import type { ModelIdentifierField } from 'features/nodes/types/common';
@@ -797,12 +797,12 @@ const RefImages: CollectionMetadataHandler<RefImageState[]> = {
}
},
recall: (value, store) => {
for (const data of value) {
store.dispatch(refImageRecalled({ data: { ...data, id: getPrefixedId('reference_image') } }));
}
const entities = value.map((data) => ({ ...data, id: getPrefixedId('reference_image') }));
store.dispatch(refImagesRecalled({ entities, replace: true }));
},
recallOne: (data, store) => {
store.dispatch(refImageRecalled({ data: { ...data, id: getPrefixedId('reference_image') } }));
const entities = [{ ...data, id: getPrefixedId('reference_image') }];
store.dispatch(refImagesRecalled({ entities, replace: false }));
},
LabelComponent: () => <MetadataLabel i18nKey="controlLayers.referenceImage" />,
ValueComponent: ({ value }: CollectionMetadataValueProps<RefImageState[]>) => {