Files
InvokeAI/invokeai/frontend/web/src/features/controlAdapters/hooks/useControlAdapterIPMethod.ts
2024-04-30 08:10:59 -04:00

25 lines
726 B
TypeScript

import { createMemoizedSelector } from 'app/store/createMemoizedSelector';
import { useAppSelector } from 'app/store/storeHooks';
import {
selectControlAdapterById,
selectControlAdaptersSlice,
} from 'features/controlAdapters/store/controlAdaptersSlice';
import { useMemo } from 'react';
import { assert } from 'tsafe';
export const useControlAdapterIPMethod = (id: string) => {
const selector = useMemo(
() =>
createMemoizedSelector(selectControlAdaptersSlice, (controlAdapters) => {
const ca = selectControlAdapterById(controlAdapters, id);
assert(ca?.type === 'ip_adapter');
return ca.method;
}),
[id]
);
const method = useAppSelector(selector);
return method;
};