This commit is contained in:
Louis Mazin 2026-09-18 03:35:41 +02:00
parent e0444f7ea3
commit 5543dca652

View File

@ -10,6 +10,7 @@ import { Alert, AlertDescription } from '@/components/ui/alert';
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table';
import { Badge } from '@/components/ui/badge'; import { Badge } from '@/components/ui/badge';
import ConfirmDialog from '@/components/ConfirmDialog'; import ConfirmDialog from '@/components/ConfirmDialog';
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog';
const TimeClockPage = () => { const TimeClockPage = () => {
const videoRef = useRef(null); const videoRef = useRef(null);
@ -346,23 +347,39 @@ const TimeClockPage = () => {
</Alert> </Alert>
)} )}
{isScanning ? ( {/* Dialog for QR scanner preview */}
<div className="scanner-panel"> <Dialog>
<video ref={videoRef} className="scanner-video" playsInline muted /> <DialogTrigger asChild>
<div className="scanner-frame" aria-hidden="true" /> <Button
<Button onClick={stopScanner} variant="secondary" className="mt-2"> onClick={startScanner}
Annuler variant="default"
className="mb-4"
>
{isAdmin ? "Pointer avec un QR code" : "Pointer"}
</Button> </Button>
</div> </DialogTrigger>
) : ( <DialogContent className="max-w-2xl max-h-[90vh] overflow-auto">
<Button <DialogHeader>
onClick={startScanner} <DialogTitle>Aperçu de la caméra</DialogTitle>
variant="default" </DialogHeader>
className="mb-4" {isScanning ? (
> <div className="scanner-panel">
{isAdmin ? "Pointer avec un QR code" : "Pointer"} <video ref={videoRef} className="scanner-video w-full h-auto" playsInline muted />
</Button> <div className="scanner-frame" aria-hidden="true" />
)} <Button onClick={stopScanner} variant="secondary" className="mt-2">
Annuler
</Button>
</div>
) : (
<div className="text-center py-8">
<p>La caméra est prête à être utilisée</p>
<Button onClick={startScanner} variant="default" className="mt-4">
Démarrer le scanner
</Button>
</div>
)}
</DialogContent>
</Dialog>
{scanMessage && ( {scanMessage && (
<Alert variant="success" className="mb-4"> <Alert variant="success" className="mb-4">