diff --git a/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityGroupList.tsx b/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityGroupList.tsx index beb24a5c48..b9d1999a8f 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityGroupList.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityGroupList.tsx @@ -2,6 +2,7 @@ import type { SystemStyleObject } from '@invoke-ai/ui-library'; import { Button, Collapse, Flex, Icon, Spacer, Text } from '@invoke-ai/ui-library'; import { InformationalPopover } from 'common/components/InformationalPopover/InformationalPopover'; import { useBoolean } from 'common/hooks/useBoolean'; +import { fixTooltipCloseOnScrollStyles } from 'common/util/fixTooltipCloseOnScrollStyles'; import { CanvasEntityAddOfTypeButton } from 'features/controlLayers/components/common/CanvasEntityAddOfTypeButton'; import { CanvasEntityMergeVisibleButton } from 'features/controlLayers/components/common/CanvasEntityMergeVisibleButton'; import { CanvasEntityTypeIsHiddenToggle } from 'features/controlLayers/components/common/CanvasEntityTypeIsHiddenToggle'; @@ -78,7 +79,7 @@ export const CanvasEntityGroupList = memo(({ isSelected, type, children }: Props {isRenderableEntityType(type) && } - + {children} diff --git a/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityPreviewImage.tsx b/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityPreviewImage.tsx index 9ce0875225..aacc22866f 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityPreviewImage.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/common/CanvasEntityPreviewImage.tsx @@ -1,4 +1,4 @@ -import { Box, chakra, Flex } from '@invoke-ai/ui-library'; +import { Box, chakra, Flex, Tooltip } from '@invoke-ai/ui-library'; import { useStore } from '@nanostores/react'; import { createSelector } from '@reduxjs/toolkit'; import { rgbColorToString } from 'common/util/colorCodeTransformers'; @@ -86,13 +86,63 @@ export const CanvasEntityPreviewImage = memo(() => { useEffect(updatePreview, [updatePreview, canvasCache, nodeRect, pixelRect]); + return ( + } p={2} closeOnScroll> + + + + + + ); +}); + +CanvasEntityPreviewImage.displayName = 'CanvasEntityPreviewImage'; + +const TooltipContent = ({ canvasRef }: { canvasRef: React.RefObject }) => { + const canvasRef2 = useRef(null); + + useEffect(() => { + if (!canvasRef2.current || !canvasRef.current) { + return; + } + + const ctx = canvasRef2.current.getContext('2d'); + + if (!ctx) { + return; + } + + canvasRef2.current.width = canvasRef.current.width; + canvasRef2.current.height = canvasRef.current.height; + ctx.clearRect(0, 0, canvasRef2.current.width, canvasRef2.current.height); + ctx.drawImage(canvasRef.current, 0, 0); + }, [canvasRef]); + return ( { bottom={0} left={0} bgImage={TRANSPARENCY_CHECKERBOARD_PATTERN_DARK_DATAURL} - bgSize="5px" + bgSize="8px" /> - + ); -}); - -CanvasEntityPreviewImage.displayName = 'CanvasEntityPreviewImage'; +};