refactor: integrate tooltip functionality into OrderPrintButton component to enhance user interaction and improve clarity
This commit is contained in:
parent
29f4498ede
commit
e522b5f922
@ -4,11 +4,12 @@ import { Printer } from '@lucide/vue';
|
||||
import { computed, ref } from 'vue';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import {
|
||||
Popover,
|
||||
PopoverContent,
|
||||
PopoverTrigger,
|
||||
} from '@/components/ui/popover';
|
||||
import Popover from '@/components/ui/popover/Popover.vue';
|
||||
import PopoverContent from '@/components/ui/popover/PopoverContent.vue';
|
||||
import PopoverTrigger from '@/components/ui/popover/PopoverTrigger.vue';
|
||||
import Tooltip from '@/components/ui/tooltip/Tooltip.vue';
|
||||
import TooltipContent from '@/components/ui/tooltip/TooltipContent.vue';
|
||||
import TooltipTrigger from '@/components/ui/tooltip/TooltipTrigger.vue';
|
||||
import { useThermalPrinter, getPaperSizeLabel } from '@/composables/useThermalPrinter';
|
||||
import type { PaperSize } from '@/lib/thermal-printer/types';
|
||||
import type { OrderListItem } from '@/types/order';
|
||||
@ -68,24 +69,32 @@ async function handlePrint(paperSize: PaperSize) {
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Popover v-model:open="open">
|
||||
<PopoverTrigger as-child>
|
||||
<Button variant="ghost" size="icon" class="size-8" :disabled="processing" title="Cetak struk">
|
||||
<Printer class="size-4" />
|
||||
<span class="sr-only">Cetak struk</span>
|
||||
</Button>
|
||||
</PopoverTrigger>
|
||||
<Tooltip>
|
||||
<Popover v-model:open="open">
|
||||
<TooltipTrigger as-child>
|
||||
<PopoverTrigger as-child>
|
||||
<Button variant="ghost" size="icon" class="size-8" :disabled="processing">
|
||||
<Printer class="size-4" />
|
||||
<span class="sr-only">Cetak struk</span>
|
||||
</Button>
|
||||
</PopoverTrigger>
|
||||
</TooltipTrigger>
|
||||
|
||||
<PopoverContent align="end" class="w-40 space-y-2 p-3">
|
||||
<p class="text-sm font-medium">
|
||||
Ukuran kertas
|
||||
</p>
|
||||
<div class="grid grid-cols-2 gap-2">
|
||||
<Button v-for="paperSize in paperSizes" :key="paperSize" variant="outline" size="sm" class="h-8"
|
||||
:disabled="processing" @click="handlePrint(paperSize)">
|
||||
{{ paperSize }}
|
||||
</Button>
|
||||
</div>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
<TooltipContent>
|
||||
Cetak struk
|
||||
</TooltipContent>
|
||||
|
||||
<PopoverContent align="end" class="w-40 space-y-2 p-3">
|
||||
<p class="text-sm font-medium">
|
||||
Ukuran kertas
|
||||
</p>
|
||||
<div class="grid grid-cols-2 gap-2">
|
||||
<Button v-for="paperSize in paperSizes" :key="paperSize" variant="outline" size="sm" class="h-8"
|
||||
:disabled="processing" @click="handlePrint(paperSize)">
|
||||
{{ paperSize }}
|
||||
</Button>
|
||||
</div>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
</Tooltip>
|
||||
</template>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user