Skip to content

Commit 5a2cfda

Browse files
committed
Add button to clear queue when queue is closed
1 parent c0dcb6a commit 5a2cfda

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/components/queue/TicketQueue.tsx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { useEffect, useMemo, useState } from 'react';
22
import { PersonalQueue, TicketStatus, UserRole } from '@prisma/client';
3-
import { Flex, Skeleton, SkeletonText, Tab, TabList, TabPanel, TabPanels, Tabs, Text } from '@chakra-ui/react';
3+
import { Button, Flex, Skeleton, SkeletonText, Tab, TabList, TabPanel, TabPanels, Tabs, Text } from '@chakra-ui/react';
44
import { trpc } from '../../utils/trpc';
55
import { useChannel } from '@ably-labs/react-hooks';
66
import { uppercaseFirstLetter } from '../../utils/utils';
@@ -26,6 +26,7 @@ export type TabType = TicketStatus | 'Priority' | 'Public';
2626
*/
2727
const TicketQueue = (props: TicketQueueProps) => {
2828
const { userRole, isPendingStageEnabled, isQueueOpen, userId, personalQueue } = props;
29+
const clearQueueMutation = trpc.ticket.clearQueue.useMutation();
2930
const [tabIndex, setTabIndex] = useState(0);
3031

3132
const context = trpc.useContext();
@@ -222,13 +223,27 @@ const TicketQueue = (props: TicketQueueProps) => {
222223
return -1;
223224
};
224225

226+
const clearQueue = async () => {
227+
await clearQueueMutation.mutateAsync({ personalQueueName: personalQueue?.name });
228+
context.ticket.getTicketsWithStatus.invalidate();
229+
};
230+
231+
const totalTicketsLength =
232+
getTickets(TicketStatus.OPEN).length +
233+
getTickets(TicketStatus.PENDING).length +
234+
getTickets(TicketStatus.ASSIGNED).length +
235+
getTickets(TicketStatus.ABSENT).length;
236+
225237
return (
226238
<Flex width='full' align='left' flexDir='column' p={4}>
227239
{!isQueueOpen ? (
228-
<Flex alignItems='center' justifyContent='center' width='100%' mt={5}>
240+
<Flex flexDir='column' alignItems='center' justifyContent='center' width='100%' mt={5}>
229241
<Text fontSize='2xl' fontWeight='bold'>
230242
Queue is currently closed
231243
</Text>
244+
<Button hidden={totalTicketsLength === 0} onClick={clearQueue} ml={5} colorScheme='green'>
245+
Clear Queue
246+
</Button>
232247
</Flex>
233248
) : (
234249
<></>

0 commit comments

Comments
 (0)