From ebb92bee262bf031b51eefc23ba17cccf90415e2 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:36:11 +1000 Subject: [PATCH] fix(ui): use reactive entity adapter hooks, fix one-behind issue --- .../controlLayers/hooks/useEntityAdapter.ts | 32 ------------------- .../controlLayers/hooks/useEntityFilter.ts | 2 +- .../controlLayers/hooks/useEntityTransform.ts | 2 +- 3 files changed, 2 insertions(+), 34 deletions(-) delete mode 100644 invokeai/frontend/web/src/features/controlLayers/hooks/useEntityAdapter.ts diff --git a/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityAdapter.ts b/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityAdapter.ts deleted file mode 100644 index db1bd01ba2..0000000000 --- a/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityAdapter.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { useCanvasManager } from 'features/controlLayers/contexts/CanvasManagerProviderGate'; -import type { CanvasEntityAdapter } from 'features/controlLayers/konva/CanvasEntity/types'; -import type { CanvasEntityIdentifier } from 'features/controlLayers/store/types'; -import { useMemo } from 'react'; -import { assert } from 'tsafe'; - -/** @knipignore */ -export const useEntityAdapter = (entityIdentifier: CanvasEntityIdentifier): CanvasEntityAdapter => { - const canvasManager = useCanvasManager(); - - const adapter = useMemo(() => { - const adapter = canvasManager.getAdapter(entityIdentifier); - assert(adapter, 'Entity adapter not found'); - return adapter; - }, [canvasManager, entityIdentifier]); - - return adapter; -}; - -export const useEntityAdapterSafe = (entityIdentifier: CanvasEntityIdentifier | null): CanvasEntityAdapter | null => { - const canvasManager = useCanvasManager(); - - const adapter = useMemo(() => { - if (!entityIdentifier) { - return null; - } - const adapter = canvasManager.getAdapter(entityIdentifier); - return adapter ?? null; - }, [canvasManager, entityIdentifier]); - - return adapter; -}; diff --git a/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityFilter.ts b/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityFilter.ts index 7320641020..06bea93d5e 100644 --- a/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityFilter.ts +++ b/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityFilter.ts @@ -2,8 +2,8 @@ import { useStore } from '@nanostores/react'; import { useAppSelector } from 'app/store/storeHooks'; import { SyncableMap } from 'common/util/SyncableMap/SyncableMap'; import { useCanvasManager } from 'features/controlLayers/contexts/CanvasManagerProviderGate'; +import { useEntityAdapterSafe } from 'features/controlLayers/contexts/EntityAdapterContext'; import { useCanvasIsBusy } from 'features/controlLayers/hooks/useCanvasIsBusy'; -import { useEntityAdapterSafe } from 'features/controlLayers/hooks/useEntityAdapter'; import type { AnyObjectRenderer } from 'features/controlLayers/konva/CanvasObject/types'; import { getEmptyRect } from 'features/controlLayers/konva/util'; import { selectIsStaging } from 'features/controlLayers/store/canvasStagingAreaSlice'; diff --git a/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityTransform.ts b/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityTransform.ts index 63e57f4afb..911e419ec9 100644 --- a/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityTransform.ts +++ b/invokeai/frontend/web/src/features/controlLayers/hooks/useEntityTransform.ts @@ -2,8 +2,8 @@ import { useStore } from '@nanostores/react'; import { useAppSelector } from 'app/store/storeHooks'; import { SyncableMap } from 'common/util/SyncableMap/SyncableMap'; import { useCanvasManager } from 'features/controlLayers/contexts/CanvasManagerProviderGate'; +import { useEntityAdapterSafe } from 'features/controlLayers/contexts/EntityAdapterContext'; import { useCanvasIsBusy } from 'features/controlLayers/hooks/useCanvasIsBusy'; -import { useEntityAdapterSafe } from 'features/controlLayers/hooks/useEntityAdapter'; import type { AnyObjectRenderer } from 'features/controlLayers/konva/CanvasObject/types'; import { getEmptyRect } from 'features/controlLayers/konva/util'; import { selectIsStaging } from 'features/controlLayers/store/canvasStagingAreaSlice';