mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
feat(ui): restore context menu for entity list
This commit is contained in:
parent
bd5780de4d
commit
fec61ce1ff
@ -1,21 +1,37 @@
|
|||||||
import { Divider, Flex } from '@invoke-ai/ui-library';
|
import { Box, ContextMenu, Divider, Flex, MenuList } from '@invoke-ai/ui-library';
|
||||||
import { useAppSelector } from 'app/store/storeHooks';
|
import { useAppSelector } from 'app/store/storeHooks';
|
||||||
import { CanvasAddEntityButtons } from 'features/controlLayers/components/CanvasAddEntityButtons';
|
import { CanvasAddEntityButtons } from 'features/controlLayers/components/CanvasAddEntityButtons';
|
||||||
import { CanvasEntityList } from 'features/controlLayers/components/CanvasEntityList/CanvasEntityList';
|
import { CanvasEntityList } from 'features/controlLayers/components/CanvasEntityList/CanvasEntityList';
|
||||||
import { EntityListActionBar } from 'features/controlLayers/components/CanvasEntityList/EntityListActionBar';
|
import { EntityListActionBar } from 'features/controlLayers/components/CanvasEntityList/EntityListActionBar';
|
||||||
|
import { CanvasEntityListMenuItems } from 'features/controlLayers/components/CanvasEntityList/EntityListActionBarAddLayerMenuItems';
|
||||||
import { CanvasManagerProviderGate } from 'features/controlLayers/contexts/CanvasManagerProviderGate';
|
import { CanvasManagerProviderGate } from 'features/controlLayers/contexts/CanvasManagerProviderGate';
|
||||||
import { selectHasEntities } from 'features/controlLayers/store/selectors';
|
import { selectHasEntities } from 'features/controlLayers/store/selectors';
|
||||||
import { memo } from 'react';
|
import { memo, useCallback } from 'react';
|
||||||
|
|
||||||
export const CanvasPanelContent = memo(() => {
|
export const CanvasPanelContent = memo(() => {
|
||||||
const hasEntities = useAppSelector(selectHasEntities);
|
const hasEntities = useAppSelector(selectHasEntities);
|
||||||
|
const renderMenu = useCallback(
|
||||||
|
() => (
|
||||||
|
<MenuList>
|
||||||
|
<CanvasEntityListMenuItems />
|
||||||
|
</MenuList>
|
||||||
|
),
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CanvasManagerProviderGate>
|
<CanvasManagerProviderGate>
|
||||||
<Flex flexDir="column" gap={2} w="full" h="full">
|
<Flex flexDir="column" gap={2} w="full" h="full">
|
||||||
<EntityListActionBar />
|
<EntityListActionBar />
|
||||||
<Divider py={0} />
|
<Divider py={0} />
|
||||||
{!hasEntities && <CanvasAddEntityButtons />}
|
<ContextMenu<HTMLDivElement> renderMenu={renderMenu} stopImmediatePropagation stopPropagation>
|
||||||
{hasEntities && <CanvasEntityList />}
|
{(ref) => (
|
||||||
|
<Box ref={ref} w="full" h="full">
|
||||||
|
{!hasEntities && <CanvasAddEntityButtons />}
|
||||||
|
{hasEntities && <CanvasEntityList />}
|
||||||
|
</Box>
|
||||||
|
)}
|
||||||
|
</ContextMenu>
|
||||||
</Flex>
|
</Flex>
|
||||||
</CanvasManagerProviderGate>
|
</CanvasManagerProviderGate>
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user