Skip to content

Commit c205c1d

Browse files
Attila Csehpsychedelicious
authored andcommitted
current board removed from options
1 parent ae1a815 commit c205c1d

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

invokeai/frontend/web/src/features/changeBoardModal/components/ChangeBoardModal.tsx

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
isModalOpenChanged,
99
selectChangeBoardModalSlice,
1010
} from 'features/changeBoardModal/store/slice';
11+
import { selectSelectedBoardId } from 'features/gallery/store/gallerySelectors';
1112
import { memo, useCallback, useMemo, useState } from 'react';
1213
import { useTranslation } from 'react-i18next';
1314
import { useListAllBoardsQuery } from 'services/api/endpoints/boards';
@@ -26,7 +27,8 @@ const selectIsModalOpen = createSelector(
2627
const ChangeBoardModal = () => {
2728
useAssertSingleton('ChangeBoardModal');
2829
const dispatch = useAppDispatch();
29-
const [selectedBoard, setSelectedBoard] = useState<string | null>();
30+
const currentBoardId = useAppSelector(selectSelectedBoardId);
31+
const [selectedBoardId, setSelectedBoardId] = useState<string | null>();
3032
const { data: boards, isFetching } = useListAllBoardsQuery({ include_archived: true });
3133
const isModalOpen = useAppSelector(selectIsModalOpen);
3234
const imagesToChange = useAppSelector(selectImagesToChange);
@@ -35,44 +37,46 @@ const ChangeBoardModal = () => {
3537
const { t } = useTranslation();
3638

3739
const options = useMemo<ComboboxOption[]>(() => {
38-
return [{ label: t('boards.uncategorized'), value: 'none' }].concat(
39-
(boards ?? [])
40-
.map((board) => ({
41-
label: board.board_name,
42-
value: board.board_id,
43-
}))
44-
.sort((a, b) => a.label.localeCompare(b.label))
45-
);
46-
}, [boards, t]);
40+
return [{ label: t('boards.uncategorized'), value: 'none' }]
41+
.concat(
42+
(boards ?? [])
43+
.map((board) => ({
44+
label: board.board_name,
45+
value: board.board_id,
46+
}))
47+
.sort((a, b) => a.label.localeCompare(b.label))
48+
)
49+
.filter((board) => board.value !== currentBoardId);
50+
}, [boards, currentBoardId, t]);
4751

48-
const value = useMemo(() => options.find((o) => o.value === selectedBoard), [options, selectedBoard]);
52+
const value = useMemo(() => options.find((o) => o.value === selectedBoardId), [options, selectedBoardId]);
4953

5054
const handleClose = useCallback(() => {
5155
dispatch(changeBoardReset());
5256
dispatch(isModalOpenChanged(false));
5357
}, [dispatch]);
5458

5559
const handleChangeBoard = useCallback(() => {
56-
if (!imagesToChange.length || !selectedBoard) {
60+
if (!imagesToChange.length || !selectedBoardId) {
5761
return;
5862
}
5963

60-
if (selectedBoard === 'none') {
64+
if (selectedBoardId === 'none') {
6165
removeImagesFromBoard({ image_names: imagesToChange });
6266
} else {
6367
addImagesToBoard({
6468
image_names: imagesToChange,
65-
board_id: selectedBoard,
69+
board_id: selectedBoardId,
6670
});
6771
}
6872
dispatch(changeBoardReset());
69-
}, [addImagesToBoard, dispatch, imagesToChange, removeImagesFromBoard, selectedBoard]);
73+
}, [addImagesToBoard, dispatch, imagesToChange, removeImagesFromBoard, selectedBoardId]);
7074

7175
const onChange = useCallback<ComboboxOnChange>((v) => {
7276
if (!v) {
7377
return;
7478
}
75-
setSelectedBoard(v.value);
79+
setSelectedBoardId(v.value);
7680
}, []);
7781

7882
return (

0 commit comments

Comments
 (0)