diff --git a/invokeai/frontend/web/src/app/store/nanostores/store.ts b/invokeai/frontend/web/src/app/store/nanostores/store.ts index 00adc9a34f..d8248b79a0 100644 --- a/invokeai/frontend/web/src/app/store/nanostores/store.ts +++ b/invokeai/frontend/web/src/app/store/nanostores/store.ts @@ -1,4 +1,3 @@ -import { useStore } from '@nanostores/react'; import type { AppStore } from 'app/store/store'; import { atom } from 'nanostores'; @@ -32,11 +31,3 @@ export const getStore = () => { } return store; }; - -export const useAppStore = () => { - const store = useStore($store); - if (!store) { - throw new ReduxStoreNotInitialized(); - } - return store; -}; diff --git a/invokeai/frontend/web/src/app/store/use-debounced-app-selector.ts b/invokeai/frontend/web/src/app/store/use-debounced-app-selector.ts index ed58e19f6e..c6ab2a4c9e 100644 --- a/invokeai/frontend/web/src/app/store/use-debounced-app-selector.ts +++ b/invokeai/frontend/web/src/app/store/use-debounced-app-selector.ts @@ -1,5 +1,5 @@ import type { Selector } from '@reduxjs/toolkit'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import type { RootState } from 'app/store/store'; import { useEffect, useState } from 'react'; diff --git a/invokeai/frontend/web/src/common/hooks/usePersistedTextareaSize.ts b/invokeai/frontend/web/src/common/hooks/usePersistedTextareaSize.ts index b386ab9e4f..2a2dc2008f 100644 --- a/invokeai/frontend/web/src/common/hooks/usePersistedTextareaSize.ts +++ b/invokeai/frontend/web/src/common/hooks/usePersistedTextareaSize.ts @@ -1,4 +1,4 @@ -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { debounce } from 'es-toolkit/compat'; import type { Dimensions } from 'features/controlLayers/store/types'; import { selectUiSlice, textAreaSizesStateChanged } from 'features/ui/store/uiSlice'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/CanvasPasteModal.tsx b/invokeai/frontend/web/src/features/controlLayers/components/CanvasPasteModal.tsx index 4f64a7808e..d61e987c9d 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/CanvasPasteModal.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/CanvasPasteModal.tsx @@ -10,7 +10,7 @@ import { ModalOverlay, } from '@invoke-ai/ui-library'; import { useStore } from '@nanostores/react'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAppSelector } from 'app/store/storeHooks'; import { useAssertSingleton } from 'common/hooks/useAssertSingleton'; import { useCanvasManager } from 'features/controlLayers/contexts/CanvasManagerProviderGate'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerControlAdapter.tsx b/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerControlAdapter.tsx index 4991d418fc..5b57438d7d 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerControlAdapter.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerControlAdapter.tsx @@ -1,6 +1,6 @@ import { Flex, IconButton } from '@invoke-ai/ui-library'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAppSelector } from 'app/store/storeHooks'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; import { BeginEndStepPct } from 'features/controlLayers/components/common/BeginEndStepPct'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerSettingsEmptyState.tsx b/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerSettingsEmptyState.tsx index 966630b404..b1150417f3 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerSettingsEmptyState.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/ControlLayer/ControlLayerSettingsEmptyState.tsx @@ -1,5 +1,5 @@ import { Button, Flex, Text } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; import { useEntityIdentifierContext } from 'features/controlLayers/contexts/EntityIdentifierContext'; import { usePullBboxIntoLayer } from 'features/controlLayers/hooks/saveCanvasHooks'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/RefImage/RefImageList.tsx b/invokeai/frontend/web/src/features/controlLayers/components/RefImage/RefImageList.tsx index 8c723d1904..1457d86a1c 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/RefImage/RefImageList.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/RefImage/RefImageList.tsx @@ -1,5 +1,5 @@ import { Button, Collapse, Divider, Flex } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAppSelector } from 'app/store/storeHooks'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; import { RefImagePreview } from 'features/controlLayers/components/RefImage/RefImagePreview'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/ImageActions.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/ImageActions.tsx index 2bfeec992e..6e5b70c57d 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/ImageActions.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/ImageActions.tsx @@ -1,6 +1,6 @@ import type { ButtonGroupProps } from '@invoke-ai/ui-library'; import { Button, ButtonGroup } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { newCanvasFromImage } from 'features/imageActions/actions'; import { memo, useCallback } from 'react'; import type { ImageDTO } from 'services/api/types'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadAddStyleReference.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadAddStyleReference.tsx index 6ab253565b..4f68f9eaf6 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadAddStyleReference.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadAddStyleReference.tsx @@ -1,5 +1,5 @@ import { Flex, Heading, Icon, Text } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; import { LaunchpadButton } from 'features/controlLayers/components/SimpleSession/LaunchpadButton'; import { getDefaultRefImageConfig } from 'features/controlLayers/hooks/addLayerHooks'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadEditImageButton.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadEditImageButton.tsx index afc5c6c403..7899b5f646 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadEditImageButton.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadEditImageButton.tsx @@ -1,5 +1,5 @@ import { Flex, Heading, Icon, Text } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; import { LaunchpadButton } from 'features/controlLayers/components/SimpleSession/LaunchpadButton'; import { newCanvasFromImageDndTarget } from 'features/dnd/dnd'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadUseALayoutImageButton.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadUseALayoutImageButton.tsx index f05290f095..f203d98d43 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadUseALayoutImageButton.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/LaunchpadUseALayoutImageButton.tsx @@ -1,5 +1,5 @@ import { Flex, Heading, Icon, Text } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; import { newCanvasFromImageDndTarget } from 'features/dnd/dnd'; import { DndDropTarget } from 'features/dnd/DndDropTarget'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx index e5030ce569..b5dd130680 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx @@ -1,7 +1,7 @@ import { useStore } from '@nanostores/react'; import { createSelector } from '@reduxjs/toolkit'; import { EMPTY_ARRAY } from 'app/store/constants'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { buildZodTypeGuard } from 'common/util/zodUtils'; import { getOutputImageName } from 'features/controlLayers/components/SimpleSession/shared'; import type { ProgressImage } from 'features/nodes/types/common'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/StagingAreaToolbarMenuNewLayerFromImage.tsx b/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/StagingAreaToolbarMenuNewLayerFromImage.tsx index 1c748139c5..1f73b8de73 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/StagingAreaToolbarMenuNewLayerFromImage.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/StagingAreaToolbarMenuNewLayerFromImage.tsx @@ -1,6 +1,6 @@ import { MenuGroup, MenuItem } from '@invoke-ai/ui-library'; import { useStore } from '@nanostores/react'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { NewLayerIcon } from 'features/controlLayers/components/common/icons'; import { useCanvasSessionContext } from 'features/controlLayers/components/SimpleSession/context'; import { useCanvasManager } from 'features/controlLayers/contexts/CanvasManagerProviderGate'; diff --git a/invokeai/frontend/web/src/features/controlLayers/hooks/addLayerHooks.ts b/invokeai/frontend/web/src/features/controlLayers/hooks/addLayerHooks.ts index 3c4eacc1f8..6abd9b11d2 100644 --- a/invokeai/frontend/web/src/features/controlLayers/hooks/addLayerHooks.ts +++ b/invokeai/frontend/web/src/features/controlLayers/hooks/addLayerHooks.ts @@ -1,6 +1,6 @@ import { createSelector } from '@reduxjs/toolkit'; import { createMemoizedSelector } from 'app/store/createMemoizedSelector'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import type { AppGetState } from 'app/store/store'; import { useAppDispatch } from 'app/store/storeHooks'; import { deepClone } from 'common/util/deepClone'; diff --git a/invokeai/frontend/web/src/features/controlLayers/hooks/useInvokeCanvas.ts b/invokeai/frontend/web/src/features/controlLayers/hooks/useInvokeCanvas.ts index 406dcb521e..76d997c705 100644 --- a/invokeai/frontend/web/src/features/controlLayers/hooks/useInvokeCanvas.ts +++ b/invokeai/frontend/web/src/features/controlLayers/hooks/useInvokeCanvas.ts @@ -1,6 +1,6 @@ import { useStore } from '@nanostores/react'; import { logger } from 'app/logging/logger'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAssertSingleton } from 'common/hooks/useAssertSingleton'; import { CanvasManager } from 'features/controlLayers/konva/CanvasManager'; import { $canvasManager } from 'features/controlLayers/store/ephemeral'; diff --git a/invokeai/frontend/web/src/features/deleteImageModal/components/DeleteImageModal.tsx b/invokeai/frontend/web/src/features/deleteImageModal/components/DeleteImageModal.tsx index f2aae77f0f..a50305940b 100644 --- a/invokeai/frontend/web/src/features/deleteImageModal/components/DeleteImageModal.tsx +++ b/invokeai/frontend/web/src/features/deleteImageModal/components/DeleteImageModal.tsx @@ -1,5 +1,5 @@ import { ConfirmationAlertDialog, Divider, Flex, FormControl, FormLabel, Switch, Text } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAppSelector } from 'app/store/storeHooks'; import ImageUsageMessage from 'features/deleteImageModal/components/ImageUsageMessage'; import { useDeleteImageModalApi, useDeleteImageModalState } from 'features/deleteImageModal/store/state'; diff --git a/invokeai/frontend/web/src/features/deleteImageModal/store/state.ts b/invokeai/frontend/web/src/features/deleteImageModal/store/state.ts index b163b7dc1e..f041484ef1 100644 --- a/invokeai/frontend/web/src/features/deleteImageModal/store/state.ts +++ b/invokeai/frontend/web/src/features/deleteImageModal/store/state.ts @@ -1,6 +1,6 @@ import { useStore } from '@nanostores/react'; -import { getStore, useAppStore } from 'app/store/nanostores/store'; -import type { AppDispatch, AppGetState, RootState } from 'app/store/store'; +import type { AppDispatch, AppStore, RootState } from 'app/store/store'; +import { useAppStore } from 'app/store/storeHooks'; import { forEach, intersection, some } from 'es-toolkit/compat'; import { entityDeleted } from 'features/controlLayers/store/canvasSlice'; import { @@ -52,14 +52,14 @@ const getInitialState = (): DeleteImagesModalState => ({ const $deleteModalState = atom(getInitialState()); -const deleteImagesWithDialog = async (image_names: string[]): Promise => { - const { getState, dispatch } = getStore(); +const deleteImagesWithDialog = async (image_names: string[], store: AppStore): Promise => { + const { getState } = store; const imageUsage = getImageUsageFromImageNames(image_names, getState()); const shouldConfirmOnDelete = selectSystemShouldConfirmOnDelete(getState()); if (!shouldConfirmOnDelete && !isAnyImageInUse(imageUsage)) { // If we don't need to confirm and the images are not in use, delete them directly - await handleDeletions(image_names, dispatch, getState); + await handleDeletions(image_names, store); } return new Promise((resolve, reject) => { @@ -74,8 +74,9 @@ const deleteImagesWithDialog = async (image_names: string[]): Promise => { }); }; -const handleDeletions = async (image_names: string[], dispatch: AppDispatch, getState: AppGetState) => { +const handleDeletions = async (image_names: string[], store: AppStore) => { try { + const { dispatch, getState } = store; const state = getState(); await dispatch(imagesApi.endpoints.deleteImages.initiate({ image_names }, { track: false })).unwrap(); @@ -96,9 +97,9 @@ const handleDeletions = async (image_names: string[], dispatch: AppDispatch, get } }; -const confirmDeletion = async (dispatch: AppDispatch, getState: AppGetState) => { +const confirmDeletion = async (store: AppStore) => { const state = $deleteModalState.get(); - await handleDeletions(state.image_names, dispatch, getState); + await handleDeletions(state.image_names, store); state.resolve?.(); closeSilently(); }; @@ -119,16 +120,16 @@ export const useDeleteImageModalState = () => { }; export const useDeleteImageModalApi = () => { - const { dispatch, getState } = useAppStore(); + const store = useAppStore(); const api = useMemo( () => ({ - delete: deleteImagesWithDialog, - confirm: () => confirmDeletion(dispatch, getState), + delete: (image_names: string[]) => deleteImagesWithDialog(image_names, store), + confirm: () => confirmDeletion(store), cancel: cancelDeletion, close: closeSilently, getUsageSummary: getImageUsageSummary, }), - [dispatch, getState] + [store] ); return api; diff --git a/invokeai/frontend/web/src/features/dnd/DndImage.tsx b/invokeai/frontend/web/src/features/dnd/DndImage.tsx index 01ac203653..e2a14ef31c 100644 --- a/invokeai/frontend/web/src/features/dnd/DndImage.tsx +++ b/invokeai/frontend/web/src/features/dnd/DndImage.tsx @@ -2,7 +2,7 @@ import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine'; import { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter'; import type { ImageProps, SystemStyleObject } from '@invoke-ai/ui-library'; import { Image } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { singleImageDndSource } from 'features/dnd/dnd'; import type { DndDragPreviewSingleImageState } from 'features/dnd/DndDragPreviewSingleImage'; import { createSingleImageDragPreview, setSingleImageDragPreview } from 'features/dnd/DndDragPreviewSingleImage'; diff --git a/invokeai/frontend/web/src/features/dynamicPrompts/hooks/useDynamicPromptsWatcher.tsx b/invokeai/frontend/web/src/features/dynamicPrompts/hooks/useDynamicPromptsWatcher.tsx index 2081dcbedb..3b52781bb5 100644 --- a/invokeai/frontend/web/src/features/dynamicPrompts/hooks/useDynamicPromptsWatcher.tsx +++ b/invokeai/frontend/web/src/features/dynamicPrompts/hooks/useDynamicPromptsWatcher.tsx @@ -1,4 +1,4 @@ -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAppSelector } from 'app/store/storeHooks'; import { debounce } from 'es-toolkit/compat'; import { diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewCanvasFromImageSubMenu.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewCanvasFromImageSubMenu.tsx index 405585546f..1c38fe9739 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewCanvasFromImageSubMenu.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewCanvasFromImageSubMenu.tsx @@ -1,5 +1,5 @@ import { Menu, MenuButton, MenuItem, MenuList } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { SubMenuButtonContent, useSubMenu } from 'common/hooks/useSubMenu'; import { useCanvasIsBusySafe } from 'features/controlLayers/hooks/useCanvasIsBusy'; import { useImageDTOContext } from 'features/gallery/contexts/ImageDTOContext'; diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewLayerFromImageSubMenu.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewLayerFromImageSubMenu.tsx index 0f751bde33..dd64462798 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewLayerFromImageSubMenu.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemNewLayerFromImageSubMenu.tsx @@ -1,5 +1,5 @@ import { Menu, MenuButton, MenuItem, MenuList } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { SubMenuButtonContent, useSubMenu } from 'common/hooks/useSubMenu'; import { NewLayerIcon } from 'features/controlLayers/components/common/icons'; import { useCanvasIsBusySafe } from 'features/controlLayers/hooks/useCanvasIsBusy'; diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemUseAsRefImage.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemUseAsRefImage.tsx index 50739364e1..1eb1d93128 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemUseAsRefImage.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageContextMenu/ImageMenuItemUseAsRefImage.tsx @@ -1,5 +1,5 @@ import { MenuItem } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { getDefaultRefImageConfig } from 'features/controlLayers/hooks/addLayerHooks'; import { refImageAdded } from 'features/controlLayers/store/refImagesSlice'; import { imageDTOToImageWithDims } from 'features/controlLayers/store/util'; diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageGrid/GalleryImage.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageGrid/GalleryImage.tsx index 27e781943e..6f95c49d6d 100644 --- a/invokeai/frontend/web/src/features/gallery/components/ImageGrid/GalleryImage.tsx +++ b/invokeai/frontend/web/src/features/gallery/components/ImageGrid/GalleryImage.tsx @@ -3,7 +3,7 @@ import { draggable, monitorForElements } from '@atlaskit/pragmatic-drag-and-drop import type { SystemStyleObject } from '@invoke-ai/ui-library'; import { Box, Flex, Icon, Image } from '@invoke-ai/ui-library'; import { createSelector } from '@reduxjs/toolkit'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import type { AppDispatch, AppGetState } from 'app/store/store'; import { useAppSelector } from 'app/store/storeHooks'; import { uniq } from 'es-toolkit'; diff --git a/invokeai/frontend/web/src/features/gallery/hooks/useImageActions.ts b/invokeai/frontend/web/src/features/gallery/hooks/useImageActions.ts index 1582f0d24b..07500ce815 100644 --- a/invokeai/frontend/web/src/features/gallery/hooks/useImageActions.ts +++ b/invokeai/frontend/web/src/features/gallery/hooks/useImageActions.ts @@ -1,6 +1,6 @@ import { useStore } from '@nanostores/react'; import { adHocPostProcessingRequested } from 'app/store/middleware/listenerMiddleware/listeners/addAdHocPostProcessingRequestedListener'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAppSelector } from 'app/store/storeHooks'; import { selectIsStaging } from 'features/controlLayers/store/canvasStagingAreaSlice'; import { useDeleteImageModalApi } from 'features/deleteImageModal/store/state'; diff --git a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/FloatFieldCollectionInputComponent.tsx b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/FloatFieldCollectionInputComponent.tsx index 400eca11b8..1f32ebf852 100644 --- a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/FloatFieldCollectionInputComponent.tsx +++ b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/FloatFieldCollectionInputComponent.tsx @@ -10,7 +10,7 @@ import { IconButton, } from '@invoke-ai/ui-library'; import { NUMPY_RAND_MAX } from 'app/constants'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { getOverlayScrollbarsParams, overlayScrollbarsStyles } from 'common/components/OverlayScrollbars/constants'; import { isNil } from 'es-toolkit/compat'; import { useInputFieldIsInvalid } from 'features/nodes/hooks/useInputFieldIsInvalid'; diff --git a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/ImageFieldCollectionInputComponent.tsx b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/ImageFieldCollectionInputComponent.tsx index 130f7bdc29..e6cd9fadc7 100644 --- a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/ImageFieldCollectionInputComponent.tsx +++ b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/ImageFieldCollectionInputComponent.tsx @@ -1,6 +1,6 @@ import type { SystemStyleObject } from '@invoke-ai/ui-library'; import { Box, Flex, Grid, GridItem } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { IAINoContentFallback, IAINoContentFallbackWithSpinner } from 'common/components/IAIImageFallback'; import { getOverlayScrollbarsParams, overlayScrollbarsStyles } from 'common/components/OverlayScrollbars/constants'; import { UploadMultipleImageButton } from 'common/hooks/useImageUploadButton'; diff --git a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/IntegerFieldCollectionInputComponent.tsx b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/IntegerFieldCollectionInputComponent.tsx index 2129b9679e..d37a8a0706 100644 --- a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/IntegerFieldCollectionInputComponent.tsx +++ b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/IntegerFieldCollectionInputComponent.tsx @@ -10,7 +10,7 @@ import { IconButton, } from '@invoke-ai/ui-library'; import { NUMPY_RAND_MAX } from 'app/constants'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { getOverlayScrollbarsParams, overlayScrollbarsStyles } from 'common/components/OverlayScrollbars/constants'; import { isNil } from 'es-toolkit/compat'; import { useInputFieldIsInvalid } from 'features/nodes/hooks/useInputFieldIsInvalid'; diff --git a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/StringFieldCollectionInputComponent.tsx b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/StringFieldCollectionInputComponent.tsx index fe3475ab43..0eb949265a 100644 --- a/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/StringFieldCollectionInputComponent.tsx +++ b/invokeai/frontend/web/src/features/nodes/components/flow/nodes/Invocation/fields/inputs/StringFieldCollectionInputComponent.tsx @@ -1,6 +1,6 @@ import type { SystemStyleObject } from '@invoke-ai/ui-library'; import { Button, Divider, Flex, Grid, GridItem, IconButton, Input, Text } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { getOverlayScrollbarsParams, overlayScrollbarsStyles } from 'common/components/OverlayScrollbars/constants'; import { useInputFieldIsInvalid } from 'features/nodes/hooks/useInputFieldIsInvalid'; import { fieldStringCollectionValueChanged } from 'features/nodes/store/nodesSlice'; diff --git a/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/WorkflowBuilderMenu.tsx b/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/WorkflowBuilderMenu.tsx index 041dee370b..38ce148ab2 100644 --- a/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/WorkflowBuilderMenu.tsx +++ b/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/WorkflowBuilderMenu.tsx @@ -1,5 +1,5 @@ import { IconButton, Menu, MenuButton, MenuItem, MenuList } from '@invoke-ai/ui-library'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useResetAllNodeFields } from 'features/nodes/components/sidePanel/builder/use-reset-all-node-fields'; import { formReset } from 'features/nodes/store/nodesSlice'; import { memo, useCallback } from 'react'; diff --git a/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/dnd-hooks.ts b/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/dnd-hooks.ts index c852cf0af5..0a50d7834a 100644 --- a/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/dnd-hooks.ts +++ b/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/dnd-hooks.ts @@ -9,7 +9,7 @@ import { import { getReorderDestinationIndex } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/get-reorder-destination-index'; import { reorderWithEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/util/reorder-with-edge'; import { logger } from 'app/logging/logger'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; import { useAssertSingleton } from 'common/hooks/useAssertSingleton'; import { colorTokenToCssVar } from 'common/util/colorTokenToCssVar'; diff --git a/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/use-reset-all-node-fields.ts b/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/use-reset-all-node-fields.ts index 5e51fef1c0..be7392b05d 100644 --- a/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/use-reset-all-node-fields.ts +++ b/invokeai/frontend/web/src/features/nodes/components/sidePanel/builder/use-reset-all-node-fields.ts @@ -1,4 +1,4 @@ -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { fieldValueReset } from 'features/nodes/store/nodesSlice'; import { selectFormInitialValues, selectNodeFieldElements } from 'features/nodes/store/selectors'; import { useCallback } from 'react'; diff --git a/invokeai/frontend/web/src/features/queue/hooks/useEnqueueWorkflows.ts b/invokeai/frontend/web/src/features/queue/hooks/useEnqueueWorkflows.ts index 1c5ee3208d..4460fe553c 100644 --- a/invokeai/frontend/web/src/features/queue/hooks/useEnqueueWorkflows.ts +++ b/invokeai/frontend/web/src/features/queue/hooks/useEnqueueWorkflows.ts @@ -1,5 +1,5 @@ import { createAction } from '@reduxjs/toolkit'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { groupBy } from 'es-toolkit/compat'; import { $outputNodeId, diff --git a/invokeai/frontend/web/src/features/queue/store/readiness.ts b/invokeai/frontend/web/src/features/queue/store/readiness.ts index b2b687ffd2..c430a1e0a9 100644 --- a/invokeai/frontend/web/src/features/queue/store/readiness.ts +++ b/invokeai/frontend/web/src/features/queue/store/readiness.ts @@ -1,7 +1,7 @@ import { useStore } from '@nanostores/react'; import { createSelector } from '@reduxjs/toolkit'; import { EMPTY_ARRAY } from 'app/store/constants'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { $false } from 'app/store/nanostores/util'; import type { AppDispatch, AppStore } from 'app/store/store'; import { useAppSelector } from 'app/store/storeHooks'; diff --git a/invokeai/frontend/web/src/features/workflowLibrary/hooks/useGetFormInitialValues.ts b/invokeai/frontend/web/src/features/workflowLibrary/hooks/useGetFormInitialValues.ts index 7db4e911ef..0c5db440cc 100644 --- a/invokeai/frontend/web/src/features/workflowLibrary/hooks/useGetFormInitialValues.ts +++ b/invokeai/frontend/web/src/features/workflowLibrary/hooks/useGetFormInitialValues.ts @@ -1,4 +1,4 @@ -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { getFormFieldInitialValues as _getFormFieldInitialValues } from 'features/nodes/store/nodesSlice'; import { selectNodesSlice } from 'features/nodes/store/selectors'; import { useCallback } from 'react'; diff --git a/invokeai/frontend/web/src/services/events/useSocketIO.ts b/invokeai/frontend/web/src/services/events/useSocketIO.ts index 9ba3369564..255bcee2fd 100644 --- a/invokeai/frontend/web/src/services/events/useSocketIO.ts +++ b/invokeai/frontend/web/src/services/events/useSocketIO.ts @@ -2,7 +2,7 @@ import { useStore } from '@nanostores/react'; import { $authToken } from 'app/store/nanostores/authToken'; import { $baseUrl } from 'app/store/nanostores/baseUrl'; import { $isDebugging } from 'app/store/nanostores/isDebugging'; -import { useAppStore } from 'app/store/nanostores/store'; +import { useAppStore } from 'app/store/storeHooks'; import { useAssertSingleton } from 'common/hooks/useAssertSingleton'; import type { MapStore } from 'nanostores'; import { useEffect, useMemo } from 'react';