import Button from "@/components/Button"; import { MENU_SITE_ORIGIN } from "@/config/menuPreview"; import { DocumentDownload } from "iconsax-react"; import { QRCodeCanvas } from "qrcode.react"; import { useMemo, useRef, type FC } from "react"; import { toast } from "react-toastify"; import { useGetRestaurant } from "../hooks/useSettingData"; const normalizeMenuUrl = (domain?: string | null, slug?: string | null): string => { const trimmedDomain = domain?.trim(); if (trimmedDomain) { if (/^https?:\/\//i.test(trimmedDomain)) { return trimmedDomain.replace(/\/+$/, ""); } return `https://${trimmedDomain.replace(/\/+$/, "")}`; } if (slug) { return `${MENU_SITE_ORIGIN}/${slug}`; } return ""; }; const QrCodeSettings: FC = () => { const { data: restaurant, isLoading } = useGetRestaurant(); const canvasWrapperRef = useRef(null); const menuUrl = useMemo( () => normalizeMenuUrl(restaurant?.data?.domain, restaurant?.data?.slug), [restaurant?.data?.domain, restaurant?.data?.slug], ); const handleDownload = () => { const canvas = canvasWrapperRef.current?.querySelector("canvas"); if (!canvas) { toast.error("QR کد آماده نیست"); return; } const link = document.createElement("a"); const fileName = restaurant?.data?.slug || restaurant?.data?.name || "menu"; link.download = `qr-${fileName}.png`; link.href = canvas.toDataURL("image/png"); link.click(); toast.success("QR کد با موفقیت دانلود شد"); }; if (isLoading) { return (
در حال بارگذاری...
); } if (!menuUrl) { return (
QR کد منو

برای ساخت QR کد، ابتدا دامنه وب‌سایت را در تنظیمات عمومی وارد کنید یا از اسلاگ رستوران استفاده شود.

); } return (
QR کد منو

این QR کد به آدرس منوی دیجیتال رستوران شما لینک می‌شود. می‌توانید آن را دانلود و چاپ کنید.

آدرس منو
{menuUrl}
); }; export default QrCodeSettings;