Skip to content

Commit 26798de

Browse files
chore(ui): lint
1 parent e798d9c commit 26798de

File tree

8 files changed

+76
-129
lines changed

8 files changed

+76
-129
lines changed

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ import { addGalleryOffsetChangedListener } from 'app/store/middleware/listenerMi
1515
import { addGetOpenAPISchemaListener } from 'app/store/middleware/listenerMiddleware/listeners/getOpenAPISchema';
1616
import { addImageAddedToBoardFulfilledListener } from 'app/store/middleware/listenerMiddleware/listeners/imageAddedToBoard';
1717
import { addImageRemovedFromBoardFulfilledListener } from 'app/store/middleware/listenerMiddleware/listeners/imageRemovedFromBoard';
18-
import { addImagesStarredListener } from 'app/store/middleware/listenerMiddleware/listeners/imagesStarred';
19-
import { addImagesUnstarredListener } from 'app/store/middleware/listenerMiddleware/listeners/imagesUnstarred';
2018
import { addImageUploadedFulfilledListener } from 'app/store/middleware/listenerMiddleware/listeners/imageUploaded';
2119
import { addModelSelectedListener } from 'app/store/middleware/listenerMiddleware/listeners/modelSelected';
2220
import { addModelsLoadedListener } from 'app/store/middleware/listenerMiddleware/listeners/modelsLoaded';
@@ -47,10 +45,6 @@ addImageUploadedFulfilledListener(startAppListening);
4745
// Image deleted
4846
addDeleteBoardAndImagesFulfilledListener(startAppListening);
4947

50-
// Image starred
51-
addImagesStarredListener(startAppListening);
52-
addImagesUnstarredListener(startAppListening);
53-
5448
// Gallery
5549
addGalleryImageClickedListener(startAppListening);
5650
addGalleryOffsetChangedListener(startAppListening);

invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/imagesStarred.ts

Lines changed: 0 additions & 25 deletions
This file was deleted.

invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/imagesUnstarred.ts

Lines changed: 0 additions & 25 deletions
This file was deleted.

invokeai/frontend/web/src/features/gallery/components/ImageViewer/CurrentImageButtons.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
} from 'react-icons/pi';
2424
import { useImageDTO } from 'services/api/endpoints/images';
2525

26-
import { useImageViewerContext } from './ImageViewerPanel';
26+
import { useImageViewerContext } from './context';
2727

2828
export const CurrentImageButtons = memo(() => {
2929
const { t } = useTranslation();

invokeai/frontend/web/src/features/gallery/components/ImageViewer/CurrentImagePreview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { NoContentForViewer } from './NoContentForViewer';
1818
import { ProgressImage } from './ProgressImage2';
1919
import { ProgressIndicator } from './ProgressIndicator2';
2020

21-
export const CurrentImagePreview = memo(({ imageDTO }: { imageDTO?: ImageDTO }) => {
21+
export const CurrentImagePreview = memo(({ imageDTO }: { imageDTO: ImageDTO | null }) => {
2222
const shouldShowImageDetails = useAppSelector(selectShouldShowImageDetails);
2323
const shouldShowProgressInViewer = useAppSelector(selectShouldShowProgressInViewer);
2424

Lines changed: 3 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
import { Divider, Flex } from '@invoke-ai/ui-library';
2-
import { useStore } from '@nanostores/react';
32
import { ImageViewer } from 'features/gallery/components/ImageViewer/ImageViewer';
43
import { ViewerToolbar } from 'features/gallery/components/ImageViewer/ViewerToolbar';
5-
import type { ProgressImage as ProgressImageType } from 'features/nodes/types/common';
6-
import { type Atom, atom, computed } from 'nanostores';
7-
import type { PropsWithChildren } from 'react';
8-
import { createContext, memo, useCallback, useContext, useEffect, useMemo, useState } from 'react';
9-
import type { ImageDTO, S } from 'services/api/types';
10-
import { $socket } from 'services/events/stores';
11-
import { assert } from 'tsafe';
4+
import { memo } from 'react';
5+
6+
import { ImageViewerContextProvider } from './context';
127

138
export const ImageViewerPanel = memo(() => {
149
return (
@@ -22,65 +17,3 @@ export const ImageViewerPanel = memo(() => {
2217
);
2318
});
2419
ImageViewerPanel.displayName = 'ImageViewerPanel';
25-
26-
type ImageViewerContextValue = {
27-
$progressEvent: Atom<S['InvocationProgressEvent'] | null>;
28-
$progressImage: Atom<ProgressImageType | null>;
29-
$hasProgressImage: Atom<boolean>;
30-
onLoadImage: (imageDTO: ImageDTO) => void;
31-
};
32-
33-
const ImageViewerContext = createContext<ImageViewerContextValue | null>(null);
34-
35-
const ImageViewerContextProvider = memo((props: PropsWithChildren) => {
36-
const socket = useStore($socket);
37-
const $progressEvent = useState(() => atom<S['InvocationProgressEvent'] | null>(null))[0];
38-
const $progressImage = useState(() => atom<ProgressImageType | null>(null))[0];
39-
const $hasProgressImage = useState(() => computed($progressImage, (progressImage) => progressImage !== null))[0];
40-
41-
useEffect(() => {
42-
if (!socket) {
43-
return;
44-
}
45-
46-
const onInvocationProgress = (data: S['InvocationProgressEvent']) => {
47-
$progressEvent.set(data);
48-
if (data.image) {
49-
$progressImage.set(data.image);
50-
}
51-
};
52-
53-
socket.on('invocation_progress', onInvocationProgress);
54-
55-
return () => {
56-
socket.off('invocation_progress', onInvocationProgress);
57-
};
58-
}, [$progressEvent, $progressImage, socket]);
59-
60-
const onLoadImage = useCallback(
61-
(imageDTO: ImageDTO) => {
62-
const progressEvent = $progressEvent.get();
63-
if (!progressEvent || !imageDTO) {
64-
return;
65-
}
66-
if (progressEvent.session_id === imageDTO.session_id) {
67-
$progressImage.set(null);
68-
}
69-
},
70-
[$progressEvent, $progressImage]
71-
);
72-
73-
const value = useMemo(
74-
() => ({ $progressEvent, $progressImage, $hasProgressImage, onLoadImage }),
75-
[$hasProgressImage, $progressEvent, $progressImage, onLoadImage]
76-
);
77-
78-
return <ImageViewerContext.Provider value={value}>{props.children}</ImageViewerContext.Provider>;
79-
});
80-
ImageViewerContextProvider.displayName = 'ImageViewerContextProvider';
81-
82-
export const useImageViewerContext = () => {
83-
const value = useContext(ImageViewerContext);
84-
assert(value !== null, 'useImageViewerContext must be used within a ImageViewerContextProvider');
85-
return value;
86-
};

invokeai/frontend/web/src/features/gallery/components/ImageViewer/ToggleMetadataViewerButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { memo, useCallback } from 'react';
99
import { useTranslation } from 'react-i18next';
1010
import { PiInfoBold } from 'react-icons/pi';
1111

12-
import { useImageViewerContext } from './ImageViewerPanel';
12+
import { useImageViewerContext } from './context';
1313

1414
export const ToggleMetadataViewerButton = memo(() => {
1515
const dispatch = useAppDispatch();
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { useStore } from '@nanostores/react';
2+
import type { ProgressImage as ProgressImageType } from 'features/nodes/types/common';
3+
import { type Atom, atom, computed } from 'nanostores';
4+
import type { PropsWithChildren } from 'react';
5+
import { createContext, memo, useCallback, useContext, useEffect, useMemo, useState } from 'react';
6+
import type { ImageDTO, S } from 'services/api/types';
7+
import { $socket } from 'services/events/stores';
8+
import { assert } from 'tsafe';
9+
10+
type ImageViewerContextValue = {
11+
$progressEvent: Atom<S['InvocationProgressEvent'] | null>;
12+
$progressImage: Atom<ProgressImageType | null>;
13+
$hasProgressImage: Atom<boolean>;
14+
onLoadImage: (imageDTO: ImageDTO) => void;
15+
};
16+
17+
const ImageViewerContext = createContext<ImageViewerContextValue | null>(null);
18+
19+
export const ImageViewerContextProvider = memo((props: PropsWithChildren) => {
20+
const socket = useStore($socket);
21+
const $progressEvent = useState(() => atom<S['InvocationProgressEvent'] | null>(null))[0];
22+
const $progressImage = useState(() => atom<ProgressImageType | null>(null))[0];
23+
const $hasProgressImage = useState(() => computed($progressImage, (progressImage) => progressImage !== null))[0];
24+
25+
useEffect(() => {
26+
if (!socket) {
27+
return;
28+
}
29+
30+
const onInvocationProgress = (data: S['InvocationProgressEvent']) => {
31+
$progressEvent.set(data);
32+
if (data.image) {
33+
$progressImage.set(data.image);
34+
}
35+
};
36+
37+
socket.on('invocation_progress', onInvocationProgress);
38+
39+
return () => {
40+
socket.off('invocation_progress', onInvocationProgress);
41+
};
42+
}, [$progressEvent, $progressImage, socket]);
43+
44+
const onLoadImage = useCallback(
45+
(imageDTO: ImageDTO) => {
46+
const progressEvent = $progressEvent.get();
47+
if (!progressEvent || !imageDTO) {
48+
return;
49+
}
50+
if (progressEvent.session_id === imageDTO.session_id) {
51+
$progressImage.set(null);
52+
}
53+
},
54+
[$progressEvent, $progressImage]
55+
);
56+
57+
const value = useMemo(
58+
() => ({ $progressEvent, $progressImage, $hasProgressImage, onLoadImage }),
59+
[$hasProgressImage, $progressEvent, $progressImage, onLoadImage]
60+
);
61+
62+
return <ImageViewerContext.Provider value={value}>{props.children}</ImageViewerContext.Provider>;
63+
});
64+
ImageViewerContextProvider.displayName = 'ImageViewerContextProvider';
65+
66+
export const useImageViewerContext = () => {
67+
const value = useContext(ImageViewerContext);
68+
assert(value !== null, 'useImageViewerContext must be used within a ImageViewerContextProvider');
69+
return value;
70+
};

0 commit comments

Comments
 (0)