|
import { Box, Flex } from '@invoke-ai/ui-library'; |
|
import { useAppSelector } from 'app/store/storeHooks'; |
|
import { useFeatureStatus } from 'features/system/hooks/useFeatureStatus'; |
|
import { selectActiveTab } from 'features/ui/store/uiSelectors'; |
|
import { memo } from 'react'; |
|
|
|
import InvocationCacheStatus from './InvocationCacheStatus'; |
|
import QueueList from './QueueList/QueueList'; |
|
import QueueStatus from './QueueStatus'; |
|
import QueueTabQueueControls from './QueueTabQueueControls'; |
|
|
|
const QueueTabContent = () => { |
|
const isInvocationCacheEnabled = useFeatureStatus('invocationCache'); |
|
const activeTabName = useAppSelector(selectActiveTab); |
|
|
|
return ( |
|
<Flex |
|
display={activeTabName === 'queue' ? undefined : 'none'} |
|
hidden={activeTabName !== 'queue'} |
|
borderRadius="base" |
|
w="full" |
|
h="full" |
|
flexDir="column" |
|
gap={2} |
|
> |
|
<Flex gap={2} w="full"> |
|
<QueueTabQueueControls /> |
|
<QueueStatus /> |
|
{isInvocationCacheEnabled && <InvocationCacheStatus />} |
|
</Flex> |
|
<Box layerStyle="first" p={2} borderRadius="base" w="full" h="full"> |
|
<QueueList /> |
|
</Box> |
|
</Flex> |
|
); |
|
}; |
|
|
|
export default memo(QueueTabContent); |
|
|