mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
refactor(ui): simplify useIsEntityTypeEnabled
This commit is contained in:
@@ -21,7 +21,9 @@ export const CanvasAddEntityButtons = memo(() => {
|
||||
const addControlLayer = useAddControlLayer();
|
||||
const addGlobalReferenceImage = useAddGlobalReferenceImage();
|
||||
const addRegionalReferenceImage = useAddRegionalReferenceImage();
|
||||
const { isReferenceImageEnabled, isRegionalGuidanceEnabled, isControlLayerEnabled } = useIsEntityTypeEnabled();
|
||||
const isReferenceImageEnabled = useIsEntityTypeEnabled('reference_image');
|
||||
const isRegionalGuidanceEnabled = useIsEntityTypeEnabled('regional_guidance');
|
||||
const isControlLayerEnabled = useIsEntityTypeEnabled('control_layer');
|
||||
|
||||
return (
|
||||
<Flex w="full" h="full" justifyContent="center" gap={4}>
|
||||
|
||||
@@ -22,7 +22,9 @@ export const EntityListGlobalActionBarAddLayerMenu = memo(() => {
|
||||
const addRegionalReferenceImage = useAddRegionalReferenceImage();
|
||||
const addRasterLayer = useAddRasterLayer();
|
||||
const addControlLayer = useAddControlLayer();
|
||||
const { isReferenceImageEnabled, isRegionalGuidanceEnabled, isControlLayerEnabled } = useIsEntityTypeEnabled();
|
||||
const isReferenceImageEnabled = useIsEntityTypeEnabled('reference_image');
|
||||
const isRegionalGuidanceEnabled = useIsEntityTypeEnabled('regional_guidance');
|
||||
const isControlLayerEnabled = useIsEntityTypeEnabled('control_layer');
|
||||
|
||||
return (
|
||||
<Menu>
|
||||
|
||||
@@ -1,57 +1,28 @@
|
||||
import { useAppSelector } from 'app/store/storeHooks';
|
||||
import { selectIsCogView4, selectIsSD3 } from 'features/controlLayers/store/paramsSlice';
|
||||
import type { CanvasEntityType } from 'features/controlLayers/store/types';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
import { useCallback } from 'react';
|
||||
|
||||
export const useIsEntityTypeEnabled = () => {
|
||||
export const useIsEntityTypeEnabled = (entityType: CanvasEntityType) => {
|
||||
const isSD3 = useAppSelector(selectIsSD3);
|
||||
const isCogView4 = useAppSelector(selectIsCogView4);
|
||||
|
||||
const isEntityTypeEnabled = useCallback(
|
||||
(layerType: CanvasEntityType) => {
|
||||
switch (layerType) {
|
||||
case 'reference_image':
|
||||
return !isSD3 && !isCogView4;
|
||||
case 'regional_guidance':
|
||||
return !isSD3 && !isCogView4;
|
||||
case 'control_layer':
|
||||
return !isSD3 && !isCogView4;
|
||||
case 'inpaint_mask':
|
||||
return true;
|
||||
case 'raster_layer':
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
[isSD3, isCogView4]
|
||||
);
|
||||
const isEntityTypeEnabled = useCallback(() => {
|
||||
switch (entityType) {
|
||||
case 'reference_image':
|
||||
return !isSD3 && !isCogView4;
|
||||
case 'regional_guidance':
|
||||
return !isSD3 && !isCogView4;
|
||||
case 'control_layer':
|
||||
return !isSD3 && !isCogView4;
|
||||
case 'inpaint_mask':
|
||||
return true;
|
||||
case 'raster_layer':
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}, [entityType, isSD3, isCogView4]);
|
||||
|
||||
const isReferenceImageEnabled = useMemo(() => {
|
||||
return isEntityTypeEnabled('reference_image');
|
||||
}, [isEntityTypeEnabled]);
|
||||
|
||||
const isRegionalGuidanceEnabled = useMemo(() => {
|
||||
return isEntityTypeEnabled('regional_guidance');
|
||||
}, [isEntityTypeEnabled]);
|
||||
|
||||
const isRasterLayerEnabled = useMemo(() => {
|
||||
return isEntityTypeEnabled('raster_layer');
|
||||
}, [isEntityTypeEnabled]);
|
||||
|
||||
const isControlLayerEnabled = useMemo(() => {
|
||||
return isEntityTypeEnabled('control_layer');
|
||||
}, [isEntityTypeEnabled]);
|
||||
|
||||
const isInpaintMaskEnabled = useMemo(() => {
|
||||
return isEntityTypeEnabled('inpaint_mask');
|
||||
}, [isEntityTypeEnabled]);
|
||||
|
||||
return {
|
||||
isReferenceImageEnabled,
|
||||
isRegionalGuidanceEnabled,
|
||||
isRasterLayerEnabled,
|
||||
isControlLayerEnabled,
|
||||
isInpaintMaskEnabled,
|
||||
};
|
||||
return isEntityTypeEnabled;
|
||||
};
|
||||
|
||||
@@ -19,7 +19,7 @@ export const ImageMenuItemNewCanvasFromImageSubMenu = memo(() => {
|
||||
const imageDTO = useImageDTOContext();
|
||||
const imageViewer = useImageViewer();
|
||||
const isBusy = useCanvasIsBusySafe();
|
||||
const { isControlLayerEnabled } = useIsEntityTypeEnabled();
|
||||
const isControlLayerEnabled = useIsEntityTypeEnabled('control_layer');
|
||||
|
||||
const onClickNewCanvasWithRasterLayerFromImage = useCallback(() => {
|
||||
const { dispatch, getState } = store;
|
||||
|
||||
@@ -21,7 +21,9 @@ export const ImageMenuItemNewLayerFromImageSubMenu = memo(() => {
|
||||
const imageDTO = useImageDTOContext();
|
||||
const imageViewer = useImageViewer();
|
||||
const isBusy = useCanvasIsBusySafe();
|
||||
const { isRegionalGuidanceEnabled, isControlLayerEnabled, isReferenceImageEnabled } = useIsEntityTypeEnabled();
|
||||
const isReferenceImageEnabled = useIsEntityTypeEnabled('reference_image');
|
||||
const isRegionalGuidanceEnabled = useIsEntityTypeEnabled('regional_guidance');
|
||||
const isControlLayerEnabled = useIsEntityTypeEnabled('control_layer');
|
||||
|
||||
const onClickNewRasterLayerFromImage = useCallback(() => {
|
||||
const { dispatch, getState } = store;
|
||||
|
||||
Reference in New Issue
Block a user