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';