"use client"; import { NEXT_PUBLIC_API_URL } from "@/config/api"; export const exportUserQrCode = async (userIds: number[]): Promise<{ blobValue: Uint8Array; filename: string }> => { const token = localStorage.getItem("accessToken"); const response = await fetch(`${NEXT_PUBLIC_API_URL}/user/export-qrcode`, { method: "POST", headers: { "Content-Type": "application/json", ...(token && { Authorization: `Bearer ${token}` }), }, body: JSON.stringify({ userIds }), }); if (!response.ok) { if (response.status === 401) { throw new Error("Unauthorized: Please log in again"); } throw new Error(`Failed to export QR code: ${response.status} ${response.statusText}`); } const filename = response.headers.get("Content-Disposition")?.split("filename=")[1]?.replace(/"/g, "") || "user_qrcode.pdf"; const blob = await response.blob(); const arrayBuffer = await blob.arrayBuffer(); const blobValue = new Uint8Array(arrayBuffer); return { blobValue, filename }; };