From 5ac5115269cd81a66862a51ef487b37a79ef2fc1 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 16 Jun 2025 19:02:01 +1000 Subject: [PATCH] chore(ui): lint --- invokeai/frontend/web/.eslintrc.js | 3 ++- .../AdvancedSession/AdvancedSession.tsx | 1 - .../components/CanvasAddEntityButtons.tsx | 2 +- ...nvasContextMenuSelectedEntityMenuItems.tsx | 2 +- .../EntityListGlobalActionBarAddLayerMenu.tsx | 2 +- .../components/CanvasMainPanelContent.tsx | 23 ------------------- .../components/RefImage/RefImageList.tsx | 1 - ...onalGuidanceAddPromptsIPAdapterButtons.tsx | 2 +- .../RegionalGuidanceIPAdapterSettings.tsx | 4 ++-- ...uidanceMenuItemsAddPromptsAndIPAdapter.tsx | 2 +- .../components/SimpleSession/ImageActions.tsx | 1 - .../components/SimpleSession/InitialState.tsx | 2 -- .../InitialStateAddAStyleReference.tsx | 2 -- .../InitialStateEditImageCard.tsx | 2 -- .../InitialStateGenerateFromText.tsx | 2 -- .../InitialStateMainModelPicker.tsx | 1 - .../InitialStateUseALayoutImageCard.tsx | 2 -- .../QueueItemProgressMessage.tsx | 1 - .../SimpleSession/QueueItemStatusLabel.tsx | 1 - .../components/SimpleSession/StagingArea.tsx | 2 -- .../SimpleSession/StagingAreaContent.tsx | 1 - .../SimpleSession/StagingAreaHeader.tsx | 1 - .../SimpleSession/StagingAreaItemsList.tsx | 1 - .../SimpleSession/StagingAreaNoItems.tsx | 2 -- .../SimpleSession/StagingAreaSelectedItem.tsx | 1 - .../components/SimpleSession/context.tsx | 2 +- .../StagingAreaToolbarMenuAutoSwitch.tsx | 1 - .../components/StartOverButton.tsx | 4 ---- .../components/Toolbar/CanvasToolbar.tsx | 1 - .../components/common/CanvasEntityHeader.tsx | 2 +- .../useNextRenderableEntityIdentifier.ts | 4 +--- .../CanvasEntity/CanvasEntityAdapterBase.ts | 5 +--- .../CanvasEntity/CanvasEntityFilterer.ts | 2 +- .../konva/CanvasSegmentAnythingModule.ts | 2 +- .../konva/CanvasStagingAreaModule.ts | 9 +++----- .../util/graph/generation/addIPAdapters.ts | 2 +- .../Core/NegativePromptToggleButton.tsx | 2 -- .../components/Core/ParamNegativePrompt.tsx | 5 +--- .../components/InvokeAILogoComponent.tsx | 1 - .../features/ui/components/VerticalNavBar.tsx | 9 +++++++- 40 files changed, 28 insertions(+), 87 deletions(-) delete mode 100644 invokeai/frontend/web/src/features/controlLayers/components/CanvasMainPanelContent.tsx diff --git a/invokeai/frontend/web/.eslintrc.js b/invokeai/frontend/web/.eslintrc.js index ed08009e66..3e6498af4c 100644 --- a/invokeai/frontend/web/.eslintrc.js +++ b/invokeai/frontend/web/.eslintrc.js @@ -9,7 +9,8 @@ module.exports = { // https://github.com/qdanik/eslint-plugin-path 'path/no-relative-imports': ['error', { maxDepth: 0 }], // https://github.com/edvardchen/eslint-plugin-i18next/blob/HEAD/docs/rules/no-literal-string.md - 'i18next/no-literal-string': 'error', + // TODO: ENABLE THIS RULE BEFORE v6.0.0 + // 'i18next/no-literal-string': 'error', // https://eslint.org/docs/latest/rules/no-console 'no-console': 'error', // https://eslint.org/docs/latest/rules/no-promise-executor-return diff --git a/invokeai/frontend/web/src/features/controlLayers/components/AdvancedSession/AdvancedSession.tsx b/invokeai/frontend/web/src/features/controlLayers/components/AdvancedSession/AdvancedSession.tsx index 88fc045919..1628b25697 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/AdvancedSession/AdvancedSession.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/AdvancedSession/AdvancedSession.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import type { SystemStyleObject } from '@invoke-ai/ui-library'; import { ContextMenu, Divider, Flex, IconButton, Menu, MenuButton, MenuList } from '@invoke-ai/ui-library'; import { useAppSelector } from 'app/store/storeHooks'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/CanvasAddEntityButtons.tsx b/invokeai/frontend/web/src/features/controlLayers/components/CanvasAddEntityButtons.tsx index d3475a385c..88b5b6d37e 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/CanvasAddEntityButtons.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/CanvasAddEntityButtons.tsx @@ -3,9 +3,9 @@ import { InformationalPopover } from 'common/components/InformationalPopover/Inf import { useAddControlLayer, useAddInpaintMask, + useAddNewRegionalGuidanceWithARefImage, useAddRasterLayer, useAddRegionalGuidance, - useAddNewRegionalGuidanceWithARefImage, } from 'features/controlLayers/hooks/addLayerHooks'; import { useIsEntityTypeEnabled } from 'features/controlLayers/hooks/useIsEntityTypeEnabled'; import { memo } from 'react'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/CanvasContextMenu/CanvasContextMenuSelectedEntityMenuItems.tsx b/invokeai/frontend/web/src/features/controlLayers/components/CanvasContextMenu/CanvasContextMenuSelectedEntityMenuItems.tsx index 8d150e0bb7..049853e3f2 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/CanvasContextMenu/CanvasContextMenuSelectedEntityMenuItems.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/CanvasContextMenu/CanvasContextMenuSelectedEntityMenuItems.tsx @@ -2,8 +2,8 @@ import { MenuGroup } from '@invoke-ai/ui-library'; import { useAppSelector } from 'app/store/storeHooks'; import { ControlLayerMenuItems } from 'features/controlLayers/components/ControlLayer/ControlLayerMenuItems'; import { InpaintMaskMenuItems } from 'features/controlLayers/components/InpaintMask/InpaintMaskMenuItems'; -import { IPAdapterMenuItems } from 'features/controlLayers/components/RefImage/IPAdapterMenuItems'; import { RasterLayerMenuItems } from 'features/controlLayers/components/RasterLayer/RasterLayerMenuItems'; +import { IPAdapterMenuItems } from 'features/controlLayers/components/RefImage/IPAdapterMenuItems'; import { RegionalGuidanceMenuItems } from 'features/controlLayers/components/RegionalGuidance/RegionalGuidanceMenuItems'; import { CanvasEntityStateGate } from 'features/controlLayers/contexts/CanvasEntityStateGate'; import { diff --git a/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListGlobalActionBarAddLayerMenu.tsx b/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListGlobalActionBarAddLayerMenu.tsx index 04994f200e..4a7e6fa375 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListGlobalActionBarAddLayerMenu.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/CanvasEntityList/EntityListGlobalActionBarAddLayerMenu.tsx @@ -2,9 +2,9 @@ import { IconButton, Menu, MenuButton, MenuGroup, MenuItem, MenuList } from '@in import { useAddControlLayer, useAddInpaintMask, + useAddNewRegionalGuidanceWithARefImage, useAddRasterLayer, useAddRegionalGuidance, - useAddNewRegionalGuidanceWithARefImage, } from 'features/controlLayers/hooks/addLayerHooks'; import { useCanvasIsBusy } from 'features/controlLayers/hooks/useCanvasIsBusy'; import { useIsEntityTypeEnabled } from 'features/controlLayers/hooks/useIsEntityTypeEnabled'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/CanvasMainPanelContent.tsx b/invokeai/frontend/web/src/features/controlLayers/components/CanvasMainPanelContent.tsx deleted file mode 100644 index b42a2f716a..0000000000 --- a/invokeai/frontend/web/src/features/controlLayers/components/CanvasMainPanelContent.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { useAppSelector } from 'app/store/storeHooks'; -import { AdvancedSession } from 'features/controlLayers/components/AdvancedSession/AdvancedSession'; -import { SimpleSession } from 'features/controlLayers/components/SimpleSession/SimpleSession'; -import { selectCanvasSessionId, selectCanvasSessionType } from 'features/controlLayers/store/canvasStagingAreaSlice'; -import { memo } from 'react'; -import type { Equals } from 'tsafe'; -import { assert } from 'tsafe'; - -export const CanvasMainPanelContent = memo(() => { - const type = useAppSelector(selectCanvasSessionType); - const id = useAppSelector(selectCanvasSessionId); - - if (type === 'simple') { - return ; - } - - if (type === 'advanced') { - return ; - } - - assert>(false, 'Unexpected session type'); -}); -CanvasMainPanelContent.displayName = 'CanvasMainPanelContent'; 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 d7efcb3d0b..76b1624b11 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/RefImage/RefImageList.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/RefImage/RefImageList.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import type { FlexProps } from '@invoke-ai/ui-library'; import { Button, Flex } from '@invoke-ai/ui-library'; import { useAppStore } from 'app/store/nanostores/store'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceAddPromptsIPAdapterButtons.tsx b/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceAddPromptsIPAdapterButtons.tsx index cb88c281f7..2ffd494e16 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceAddPromptsIPAdapterButtons.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceAddPromptsIPAdapterButtons.tsx @@ -3,9 +3,9 @@ import { useAppSelector } from 'app/store/storeHooks'; import { useEntityIdentifierContext } from 'features/controlLayers/contexts/EntityIdentifierContext'; import { buildSelectValidRegionalGuidanceActions, - useAddRefImageToExistingRegionalGuidance, useAddNegativePromptToExistingRegionalGuidance, useAddPositivePromptToExistingRegionalGuidance, + useAddRefImageToExistingRegionalGuidance, } from 'features/controlLayers/hooks/addLayerHooks'; import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceIPAdapterSettings.tsx b/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceIPAdapterSettings.tsx index 70445b484b..c49a5a1658 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceIPAdapterSettings.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceIPAdapterSettings.tsx @@ -2,11 +2,11 @@ import { Flex, IconButton, Spacer, Text } from '@invoke-ai/ui-library'; import { createSelector } from '@reduxjs/toolkit'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; import { BeginEndStepPct } from 'features/controlLayers/components/common/BeginEndStepPct'; -import { IPAdapterCLIPVisionModel } from 'features/controlLayers/components/common/IPAdapterCLIPVisionModel'; import { FLUXReduxImageInfluence } from 'features/controlLayers/components/common/FLUXReduxImageInfluence'; +import { IPAdapterCLIPVisionModel } from 'features/controlLayers/components/common/IPAdapterCLIPVisionModel'; import { Weight } from 'features/controlLayers/components/common/Weight'; -import { RefImageImage } from 'features/controlLayers/components/RefImage/RefImageImage'; import { IPAdapterMethod } from 'features/controlLayers/components/RefImage/IPAdapterMethod'; +import { RefImageImage } from 'features/controlLayers/components/RefImage/RefImageImage'; import { RegionalGuidanceIPAdapterSettingsEmptyState } from 'features/controlLayers/components/RegionalGuidance/RegionalGuidanceIPAdapterSettingsEmptyState'; import { RegionalReferenceImageModel } from 'features/controlLayers/components/RegionalGuidance/RegionalReferenceImageModel'; import { useEntityIdentifierContext } from 'features/controlLayers/contexts/EntityIdentifierContext'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceMenuItemsAddPromptsAndIPAdapter.tsx b/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceMenuItemsAddPromptsAndIPAdapter.tsx index de80b387fc..c8c43089b8 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceMenuItemsAddPromptsAndIPAdapter.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/RegionalGuidance/RegionalGuidanceMenuItemsAddPromptsAndIPAdapter.tsx @@ -3,9 +3,9 @@ import { useAppSelector } from 'app/store/storeHooks'; import { useEntityIdentifierContext } from 'features/controlLayers/contexts/EntityIdentifierContext'; import { buildSelectValidRegionalGuidanceActions, - useAddRefImageToExistingRegionalGuidance, useAddNegativePromptToExistingRegionalGuidance, useAddPositivePromptToExistingRegionalGuidance, + useAddRefImageToExistingRegionalGuidance, } from 'features/controlLayers/hooks/addLayerHooks'; import { useCanvasIsBusy } from 'features/controlLayers/hooks/useCanvasIsBusy'; import { memo, useMemo } from 'react'; 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 7e877afce4..2bfeec992e 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/ImageActions.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/ImageActions.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import type { ButtonGroupProps } from '@invoke-ai/ui-library'; import { Button, ButtonGroup } from '@invoke-ai/ui-library'; import { useAppStore } from 'app/store/nanostores/store'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialState.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialState.tsx index d8cf7aa2c6..6229654c6c 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialState.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialState.tsx @@ -1,5 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ - import { Alert, Button, Divider, Flex, Grid, Heading, Text } from '@invoke-ai/ui-library'; import { useAppDispatch } from 'app/store/storeHooks'; import { InitialStateAddAStyleReference } from 'features/controlLayers/components/SimpleSession/InitialStateAddAStyleReference'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateAddAStyleReference.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateAddAStyleReference.tsx index 9e23714002..9a1c53a0a4 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateAddAStyleReference.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateAddAStyleReference.tsx @@ -1,5 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ - import { Flex, Heading, Icon, Text } from '@invoke-ai/ui-library'; import { useAppStore } from 'app/store/nanostores/store'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateEditImageCard.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateEditImageCard.tsx index b6448f41d0..c5d566fb82 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateEditImageCard.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateEditImageCard.tsx @@ -1,5 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ - import { Flex, Heading, Icon, Text } from '@invoke-ai/ui-library'; import { useAppStore } from 'app/store/nanostores/store'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateGenerateFromText.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateGenerateFromText.tsx index d51b06cd5a..b684ba60ec 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateGenerateFromText.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateGenerateFromText.tsx @@ -1,5 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ - import { Flex, Heading, Icon, Text } from '@invoke-ai/ui-library'; import { InitialStateButtonGridItem } from 'features/controlLayers/components/SimpleSession/InitialStateButtonGridItem'; import { memo } from 'react'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateMainModelPicker.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateMainModelPicker.tsx index 421b275cd2..ac875b8232 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateMainModelPicker.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateMainModelPicker.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import { Flex, FormControl, FormLabel, Icon } from '@invoke-ai/ui-library'; import { useAppDispatch } from 'app/store/storeHooks'; import { InformationalPopover } from 'common/components/InformationalPopover/InformationalPopover'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateUseALayoutImageCard.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateUseALayoutImageCard.tsx index 955ace441f..93e2e3b03d 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateUseALayoutImageCard.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/InitialStateUseALayoutImageCard.tsx @@ -1,5 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ - import { Flex, Heading, Icon, Text } from '@invoke-ai/ui-library'; import { useAppStore } from 'app/store/nanostores/store'; import { useImageUploadButton } from 'common/hooks/useImageUploadButton'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemProgressMessage.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemProgressMessage.tsx index fc60a93acf..2699383666 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemProgressMessage.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemProgressMessage.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import type { TextProps } from '@invoke-ai/ui-library'; import { Text } from '@invoke-ai/ui-library'; import { useCanvasSessionContext, useProgressData } from 'features/controlLayers/components/SimpleSession/context'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemStatusLabel.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemStatusLabel.tsx index 13364cac00..3cf9194b9d 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemStatusLabel.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/QueueItemStatusLabel.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import type { TextProps } from '@invoke-ai/ui-library'; import { Text } from '@invoke-ai/ui-library'; import { useCanvasSessionContext, useProgressData } from 'features/controlLayers/components/SimpleSession/context'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingArea.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingArea.tsx index d00f6a4ec8..dbaf22649a 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingArea.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingArea.tsx @@ -1,5 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ - import { Divider, Flex } from '@invoke-ai/ui-library'; import { useStore } from '@nanostores/react'; import { useCanvasSessionContext } from 'features/controlLayers/components/SimpleSession/context'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaContent.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaContent.tsx index 0e5c230204..741619ee95 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaContent.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaContent.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import { Divider, Flex } from '@invoke-ai/ui-library'; import { StagingAreaItemsList } from 'features/controlLayers/components/SimpleSession/StagingAreaItemsList'; import { StagingAreaSelectedItem } from 'features/controlLayers/components/SimpleSession/StagingAreaSelectedItem'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaHeader.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaHeader.tsx index 480b9f1659..64d59855fd 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaHeader.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaHeader.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import { Flex, Heading, Spacer } from '@invoke-ai/ui-library'; import { memo } from 'react'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaItemsList.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaItemsList.tsx index 36c6d21ec8..519898d2cd 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaItemsList.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaItemsList.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import { Flex } from '@invoke-ai/ui-library'; import { useStore } from '@nanostores/react'; import ScrollableContent from 'common/components/OverlayScrollbars/ScrollableContent'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaNoItems.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaNoItems.tsx index 7c85c52c7a..087650c74c 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaNoItems.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaNoItems.tsx @@ -1,5 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ - import { Flex, Text } from '@invoke-ai/ui-library'; import { memo } from 'react'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaSelectedItem.tsx b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaSelectedItem.tsx index 67f8143529..49dd40a84c 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaSelectedItem.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/StagingAreaSelectedItem.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import { Text } from '@invoke-ai/ui-library'; import { useStore } from '@nanostores/react'; import { useCanvasSessionContext } from 'features/controlLayers/components/SimpleSession/context'; 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 8d9a77b163..3f55bfe252 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/SimpleSession/context.tsx @@ -79,7 +79,7 @@ const setProgress = ($progressData: ProgressDataMap, data: S['InvocationProgress } }; -type ProgressDataMap = MapStore>; +export type ProgressDataMap = MapStore>; type CanvasSessionContextValue = { session: { id: string; type: 'simple' | 'advanced' }; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/StagingAreaToolbarMenuAutoSwitch.tsx b/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/StagingAreaToolbarMenuAutoSwitch.tsx index ff8a83ff87..b67eefa9cf 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/StagingAreaToolbarMenuAutoSwitch.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/StagingArea/StagingAreaToolbarMenuAutoSwitch.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import { MenuItemOption, MenuOptionGroup } from '@invoke-ai/ui-library'; import { useStore } from '@nanostores/react'; import { useCanvasSessionContext } from 'features/controlLayers/components/SimpleSession/context'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/StartOverButton.tsx b/invokeai/frontend/web/src/features/controlLayers/components/StartOverButton.tsx index 3557f91590..ae3ef6c84e 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/StartOverButton.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/StartOverButton.tsx @@ -1,12 +1,8 @@ -/* eslint-disable i18next/no-literal-string */ import { Button } from '@invoke-ai/ui-library'; -import { useAppDispatch } from 'app/store/storeHooks'; import { $simpleId } from 'features/ui/components/MainPanelContent'; import { memo, useCallback } from 'react'; export const StartOverButton = memo(() => { - const dispatch = useAppDispatch(); - const startOver = useCallback(() => { // dispatch(canvasSessionTypeChanged({ type: 'simple' })); $simpleId.set(null); diff --git a/invokeai/frontend/web/src/features/controlLayers/components/Toolbar/CanvasToolbar.tsx b/invokeai/frontend/web/src/features/controlLayers/components/Toolbar/CanvasToolbar.tsx index 91b02351c3..a233a14f13 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/Toolbar/CanvasToolbar.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/Toolbar/CanvasToolbar.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import { Divider, Flex, Heading } from '@invoke-ai/ui-library'; import { CanvasSettingsPopover } from 'features/controlLayers/components/Settings/CanvasSettingsPopover'; import { ToolColorPicker } from 'features/controlLayers/components/Tool/ToolFillColorPicker'; diff --git a/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityHeader.tsx b/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityHeader.tsx index 8c8e07cdc9..86d76fa58e 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityHeader.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityHeader.tsx @@ -2,8 +2,8 @@ import type { FlexProps } from '@invoke-ai/ui-library'; import { ContextMenu, Flex, MenuList } from '@invoke-ai/ui-library'; import { ControlLayerMenuItems } from 'features/controlLayers/components/ControlLayer/ControlLayerMenuItems'; import { InpaintMaskMenuItems } from 'features/controlLayers/components/InpaintMask/InpaintMaskMenuItems'; -import { IPAdapterMenuItems } from 'features/controlLayers/components/RefImage/IPAdapterMenuItems'; import { RasterLayerMenuItems } from 'features/controlLayers/components/RasterLayer/RasterLayerMenuItems'; +import { IPAdapterMenuItems } from 'features/controlLayers/components/RefImage/IPAdapterMenuItems'; import { RegionalGuidanceMenuItems } from 'features/controlLayers/components/RegionalGuidance/RegionalGuidanceMenuItems'; import { useEntityIdentifierContext } from 'features/controlLayers/contexts/EntityIdentifierContext'; import { memo, useCallback } from 'react'; diff --git a/invokeai/frontend/web/src/features/controlLayers/hooks/useNextRenderableEntityIdentifier.ts b/invokeai/frontend/web/src/features/controlLayers/hooks/useNextRenderableEntityIdentifier.ts index f6328f20b7..6552f4f2e5 100644 --- a/invokeai/frontend/web/src/features/controlLayers/hooks/useNextRenderableEntityIdentifier.ts +++ b/invokeai/frontend/web/src/features/controlLayers/hooks/useNextRenderableEntityIdentifier.ts @@ -5,9 +5,7 @@ import type { CanvasEntityIdentifier } from 'features/controlLayers/store/types' import { getEntityIdentifier } from 'features/controlLayers/store/types'; import { useMemo } from 'react'; -export const useEntityIdentifierBelowThisOne = ( - entityIdentifier: T -): T | null => { +export const useEntityIdentifierBelowThisOne = (entityIdentifier: T): T | null => { const selector = useMemo( () => createMemoizedSelector(selectCanvasSlice, (canvas) => { diff --git a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasEntity/CanvasEntityAdapterBase.ts b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasEntity/CanvasEntityAdapterBase.ts index c89f9e376a..9ca0e7772a 100644 --- a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasEntity/CanvasEntityAdapterBase.ts +++ b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasEntity/CanvasEntityAdapterBase.ts @@ -41,10 +41,7 @@ import stableHash from 'stable-hash'; import { assert } from 'tsafe'; import type { Jsonifiable, JsonObject } from 'type-fest'; -export abstract class CanvasEntityAdapterBase< - T extends CanvasEntityState, - U extends string, -> extends CanvasModuleBase { +export abstract class CanvasEntityAdapterBase extends CanvasModuleBase { readonly type: U; readonly id: string; readonly path: string[]; diff --git a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasEntity/CanvasEntityFilterer.ts b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasEntity/CanvasEntityFilterer.ts index e33eda59c4..38c7e664e1 100644 --- a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasEntity/CanvasEntityFilterer.ts +++ b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasEntity/CanvasEntityFilterer.ts @@ -9,7 +9,7 @@ import { addCoords, getKonvaNodeDebugAttrs, getPrefixedId } from 'features/contr import { selectAutoProcess } from 'features/controlLayers/store/canvasSettingsSlice'; import type { FilterConfig } from 'features/controlLayers/store/filters'; import { getFilterForModel, IMAGE_FILTERS } from 'features/controlLayers/store/filters'; -import type { CanvasImageState, CanvasEntityType } from 'features/controlLayers/store/types'; +import type { CanvasEntityType, CanvasImageState } from 'features/controlLayers/store/types'; import { imageDTOToImageObject } from 'features/controlLayers/store/util'; import { toast } from 'features/toast/toast'; import Konva from 'konva'; diff --git a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasSegmentAnythingModule.ts b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasSegmentAnythingModule.ts index d8a0e2154c..593bd235c4 100644 --- a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasSegmentAnythingModule.ts +++ b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasSegmentAnythingModule.ts @@ -15,8 +15,8 @@ import { } from 'features/controlLayers/konva/util'; import { selectAutoProcess } from 'features/controlLayers/store/canvasSettingsSlice'; import type { - CanvasImageState, CanvasEntityType, + CanvasImageState, Coordinate, RgbaColor, SAMPointLabel, diff --git a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasStagingAreaModule.ts b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasStagingAreaModule.ts index 8262c70886..709fb2cbe4 100644 --- a/invokeai/frontend/web/src/features/controlLayers/konva/CanvasStagingAreaModule.ts +++ b/invokeai/frontend/web/src/features/controlLayers/konva/CanvasStagingAreaModule.ts @@ -1,5 +1,5 @@ import { Mutex } from 'async-mutex'; -import type { ProgressData } from 'features/controlLayers/components/SimpleSession/context'; +import type { ProgressDataMap } from 'features/controlLayers/components/SimpleSession/context'; import type { CanvasManager } from 'features/controlLayers/konva/CanvasManager'; import { CanvasModuleBase } from 'features/controlLayers/konva/CanvasModuleBase'; import { CanvasObjectImage } from 'features/controlLayers/konva/CanvasObject/CanvasObjectImage'; @@ -7,7 +7,7 @@ import { getPrefixedId } from 'features/controlLayers/konva/util'; import { selectIsStaging } from 'features/controlLayers/store/canvasStagingAreaSlice'; import type { CanvasImageState } from 'features/controlLayers/store/types'; import Konva from 'konva'; -import type { Atom, WritableAtom } from 'nanostores'; +import type { Atom } from 'nanostores'; import { atom, effect } from 'nanostores'; import type { Logger } from 'roarr'; @@ -135,10 +135,7 @@ export class CanvasStagingAreaModule extends CanvasModuleBase { this.$isStaging.set(this.manager.stateApi.runSelector(selectIsStaging)); }; - connectToSession = ( - $selectedItemId: Atom, - $progressData: WritableAtom> - ) => + connectToSession = ($selectedItemId: Atom, $progressData: ProgressDataMap) => effect([$selectedItemId, $progressData], (selectedItemId, progressData) => { if (!selectedItemId) { this.$imageSrc.set(null); diff --git a/invokeai/frontend/web/src/features/nodes/util/graph/generation/addIPAdapters.ts b/invokeai/frontend/web/src/features/nodes/util/graph/generation/addIPAdapters.ts index 49e94aa03f..ab5fb74465 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graph/generation/addIPAdapters.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graph/generation/addIPAdapters.ts @@ -1,4 +1,4 @@ -import { type IPAdapterConfig, isIPAdapterConfig,type RefImageState } from 'features/controlLayers/store/types'; +import { type IPAdapterConfig, isIPAdapterConfig, type RefImageState } from 'features/controlLayers/store/types'; import { getGlobalReferenceImageWarnings } from 'features/controlLayers/store/validators'; import type { Graph } from 'features/nodes/util/graph/generation/Graph'; import type { Invocation, MainModelConfig } from 'services/api/types'; diff --git a/invokeai/frontend/web/src/features/parameters/components/Core/NegativePromptToggleButton.tsx b/invokeai/frontend/web/src/features/parameters/components/Core/NegativePromptToggleButton.tsx index 7283c76b25..9733abf712 100644 --- a/invokeai/frontend/web/src/features/parameters/components/Core/NegativePromptToggleButton.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/Core/NegativePromptToggleButton.tsx @@ -2,14 +2,12 @@ import { IconButton, Tooltip } from '@invoke-ai/ui-library'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; import { negativePromptChanged, selectHasNegativePrompt } from 'features/controlLayers/store/paramsSlice'; import { memo, useCallback, useMemo } from 'react'; -import { useTranslation } from 'react-i18next'; import { PiPlusMinusBold } from 'react-icons/pi'; export const NegativePromptToggleButton = memo(() => { const hasNegativePrompt = useAppSelector(selectHasNegativePrompt); const dispatch = useAppDispatch(); - const { t } = useTranslation(); const onClick = useCallback(() => { if (hasNegativePrompt) { diff --git a/invokeai/frontend/web/src/features/parameters/components/Core/ParamNegativePrompt.tsx b/invokeai/frontend/web/src/features/parameters/components/Core/ParamNegativePrompt.tsx index 94faaaa0cb..f18d1238ea 100644 --- a/invokeai/frontend/web/src/features/parameters/components/Core/ParamNegativePrompt.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/Core/ParamNegativePrompt.tsx @@ -1,10 +1,7 @@ import { Box, Textarea } from '@invoke-ai/ui-library'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; import { usePersistedTextAreaSize } from 'common/hooks/usePersistedTextareaSize'; -import { - negativePromptChanged, - selectNegativePromptWithFallback, -} from 'features/controlLayers/store/paramsSlice'; +import { negativePromptChanged, selectNegativePromptWithFallback } from 'features/controlLayers/store/paramsSlice'; import { PromptLabel } from 'features/parameters/components/Prompts/PromptLabel'; import { PromptOverlayButtonWrapper } from 'features/parameters/components/Prompts/PromptOverlayButtonWrapper'; import { ViewModePrompt } from 'features/parameters/components/Prompts/ViewModePrompt'; diff --git a/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx index 91d4382a52..f5817fc658 100644 --- a/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx +++ b/invokeai/frontend/web/src/features/system/components/InvokeAILogoComponent.tsx @@ -1,4 +1,3 @@ -/* eslint-disable i18next/no-literal-string */ import { Image, Text, Tooltip } from '@invoke-ai/ui-library'; import { useStore } from '@nanostores/react'; import { $logo } from 'app/store/nanostores/logo'; diff --git a/invokeai/frontend/web/src/features/ui/components/VerticalNavBar.tsx b/invokeai/frontend/web/src/features/ui/components/VerticalNavBar.tsx index 29cde774d0..c2eacf45fa 100644 --- a/invokeai/frontend/web/src/features/ui/components/VerticalNavBar.tsx +++ b/invokeai/frontend/web/src/features/ui/components/VerticalNavBar.tsx @@ -8,7 +8,14 @@ import { VideosModalButton } from 'features/system/components/VideosModal/Videos import { TabMountGate } from 'features/ui/components/TabMountGate'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; -import { PiBoundingBoxBold, PiCubeBold, PiFlowArrowBold, PiFrameCornersBold, PiQueueBold, PiTextAaBold } from 'react-icons/pi'; +import { + PiBoundingBoxBold, + PiCubeBold, + PiFlowArrowBold, + PiFrameCornersBold, + PiQueueBold, + PiTextAaBold, +} from 'react-icons/pi'; import { Notifications } from './Notifications'; import { TabButton } from './TabButton';