import { Button, ButtonGroup, Flex, Spacer } from '@chakra-ui/react'; import { useAppDispatch } from 'app/store/storeHooks'; import CancelCurrentQueueItemButton from 'features/queue/components/CancelCurrentQueueItemButton'; import ClearQueueButton from 'features/queue/components/ClearQueueButton'; import PauseProcessorButton from 'features/queue/components/PauseProcessorButton'; import QueueBackButton from 'features/queue/components/QueueBackButton'; import QueueFrontButton from 'features/queue/components/QueueFrontButton'; import ResumeProcessorButton from 'features/queue/components/ResumeProcessorButton'; import ProgressBar from 'features/system/components/ProgressBar'; import { setActiveTab } from 'features/ui/store/uiSlice'; import { memo, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { useGetQueueStatusQuery } from 'services/api/endpoints/queue'; import { useFeatureStatus } from '../../system/hooks/useFeatureStatus'; const QueueControls = () => { const isPauseEnabled = useFeatureStatus('pauseQueue').isFeatureEnabled; const isResumeEnabled = useFeatureStatus('resumeQueue').isFeatureEnabled; const isPrependEnabled = useFeatureStatus('prependQueue').isFeatureEnabled; return ( {isPrependEnabled ? : <>} {isResumeEnabled ? : <>} {isPauseEnabled ? : <>} ); }; export default memo(QueueControls); const QueueCounts = memo(() => { const { t } = useTranslation(); const dispatch = useAppDispatch(); const { hasItems, pending } = useGetQueueStatusQuery(undefined, { selectFromResult: ({ data }) => { if (!data) { return { hasItems: false, pending: 0, }; } const { pending, in_progress } = data.queue; return { hasItems: pending + in_progress > 0, pending, }; }, }); const handleClick = useCallback(() => { dispatch(setActiveTab('queue')); }, [dispatch]); return ( ); }); QueueCounts.displayName = 'QueueCounts';