import React, { useState, useEffect } from 'react';
// --- CSS Styles ---
const PopupStyles = () => (
);
// --- React Component ---
const DiscountPopup = () => {
const [isVisible, setIsVisible] = useState(false);
const [isMounted, setIsMounted] = useState(false);
const [copyText, setCopyText] = useState('اضغط لنسخ الكود');
const THRESHOLD = 50000; // 500 جنيه (بالقروش)
const CODE = "Adwati10";
// 1. Fetch Cart Data on component mount
useEffect(() => {
// عند نسخ هذا الكود إلى ملف الـ theme في Shopify
// قم بإلغاء التعليق عن الكود التالي (checkCart) واحذف السطر "setIsVisible(true)".
/*
const checkCart = async () => {
try {
const response = await fetch('/cart.js');
if (!response.ok) {
throw new Error('Failed to fetch cart');
}
const cart = await response.json();
const subtotal = cart.subtotal_price || 0;
if (subtotal >= THRESHOLD) {
setIsVisible(true);
}
} catch (error) {
console.error("Error fetching cart:", error);
}
};
checkCart();
*/
// --- للتجربة فقط ---
setIsVisible(true);
}, []);
// --- مؤقت لإغلاق البوب أب + أنيميشن الدخول ---
useEffect(() => {
// let closeTimer; // تم تعطيل المؤقت مؤقتاً للتجربة
let mountTimer;
if (isVisible) {
mountTimer = setTimeout(() => {
setIsMounted(true);
}, 10);
/*
// تم تعطيل المؤقت مؤقتاً عشان تقدر تراجع التصميم
closeTimer = setTimeout(() => {
handleClose();
}, 8000); // 8000ms = 8 ثواني
*/
return () => {
clearTimeout(mountTimer);
// clearTimeout(closeTimer);
};
}
}, [isVisible]);
// 2. Handle Copy Button Click
const handleCopy = () => {
const tempTextArea = document.createElement('textarea');
tempTextArea.value = CODE;
document.body.appendChild(tempTextArea);
tempTextArea.select();
tempTextArea.setSelectionRange(0, 99999);
try {
document.execCommand('copy');
setCopyText('✅ تم النسخ!');
setTimeout(() => setCopyText('اضغط لنسخ الكود'), 2000);
} catch (err) {
console.error('Failed to copy: ', err);
setCopyText('فشل النسخ');
setTimeout(() => setCopyText('اضغط لنسخ الكود'), 2000);
}
document.body.removeChild(tempTextArea);
};
// 3. Handle Close Popup
const handleClose = () => {
setIsMounted(false);
setTimeout(() => {
setIsVisible(false);
}, 200); // انتظر انتهاء الأنيميشن
};
// 4. Render nothing if not visible
if (!isVisible) {
return null;
}
// 5. Render the popup and overlay
return (
<>
لو طلبك فوق 500 جنيه استخدم الكود ده:
{CODE}
> ); }; export default DiscountPopup;