diff --git a/src/pages/RFIDReader.tsx b/src/pages/RFIDReader.tsx index fd96133..99f60af 100644 --- a/src/pages/RFIDReader.tsx +++ b/src/pages/RFIDReader.tsx @@ -7,7 +7,8 @@ import { rfidService } from "@/services/rfid.service"; import type { Team } from "@/types/team"; import type { Participant } from "@/types/user"; import { useAtomValue } from "jotai"; -import { useEffect, useRef, useState } from "react"; +import { Check, Clipboard } from "lucide-react"; +import { useCallback, useEffect, useRef, useState } from "react"; import { useNavigate } from "react-router-dom"; export default function RFIDReader() { @@ -32,6 +33,13 @@ export default function RFIDReader() { const [showActivityAssignedToast, setShowActivityAssignedToast] = useState< "hidden" | "success" | "alreadyAttended" >("hidden"); + const [copied, setCopied] = useState(false); + + const copyToClipboard = useCallback((text: string) => { + navigator.clipboard.writeText(text); + setCopied(true); + setTimeout(() => setCopied(false), 1500); + }, []); useEffect(() => { if (!rfidService.isSupported()) { @@ -66,6 +74,8 @@ export default function RFIDReader() { setShowActivityAssignedToast("hidden"); setRfidData(uuid); + copyToClipboard(uuid); + setRfidParticipant(undefined); setTeam(null); @@ -162,8 +172,8 @@ export default function RFIDReader() {
Choose whether the user should receive attendance for an
- activity when they tap their card. No need to use this for
- check-in.
+ activity when they tap their card.
+ No need to use this for check-in.
* means this activity is not eligible for the raffle.
The card has the following ID:
-- {rfidData} -
+ > )} {rfidParticipant ? (