import { useState, useEffect } from 'react'; import { Link } from 'react-router-dom'; import { Settings as SettingsIcon, Save, Truck, ShieldAlert, Percent, AlertCircle, CreditCard, Share2, MessageSquare } from 'lucide-react'; import { toast } from 'react-hot-toast'; import api from '../services/api'; import Spinner from '../components/ui/Spinner'; export default function Settings() { const [settings, setSettings] = useState({ SHIPPING_FEE: '', MIN_ORDER_AMOUNT: '', B2B_DISCOUNT_PERCENT: '', MAINTENANCE_MODE: 'false', CATALOG_ONLY_MODE: 'false', CATALOG_SHOW_PRICES: 'true', CATALOG_ALLOW_CART: 'false', CATALOG_ALLOW_CHECKOUT: 'false', CATALOG_PREORDER_BTN: 'false', CHARITY_ROUND_STEP: '10000', PAY_GATEWAY_CARD_ENABLE: 'true', PAY_GATEWAY_WALLET_ENABLE: 'true', PAY_GATEWAY_ONLINE_ENABLE: 'true', PAY_GATEWAY_COD_ENABLE: 'false', ZIBAL_MERCHANT: 'zibal', ZIBAL_SANDBOX: 'true', FRONTEND_URL: 'https://canina.ir', CONTACT_PHONE: '۰۲۱-۸۸۸۸ ۴۴۴۴', CONTACT_EMAIL: 'info@canina-iran.com', SOCIAL_WHATSAPP: '09120000000', SOCIAL_INSTAGRAM: 'https://instagram.com/canina_iran', SOCIAL_TELEGRAM: 'https://t.me/canina_iran', CONTACT_ADDRESS: 'تهران، جردن، خیابان سعیدی، ساختمان کانینا، طبقه ۵، واحد ۱۹', BRAND_LOGO_URL: '/logo.png', ENAMAD_CODE: '', THEME_PRIMARY_COLOR: '#7c3aed', BRAND_TYPOGRAPHY: 'vazirmatn', }); const [isLoading, setIsLoading] = useState(true); const [isSaving, setIsSaving] = useState(false); useEffect(() => { let isSubscribed = true; api.get('/admin/settings').then(response => { if (!isSubscribed) return; if (response.data?.success) { setSettings({ SHIPPING_FEE: response.data.data.SHIPPING_FEE || '0', MIN_ORDER_AMOUNT: response.data.data.MIN_ORDER_AMOUNT || '0', B2B_DISCOUNT_PERCENT: response.data.data.B2B_DISCOUNT_PERCENT || '0', MAINTENANCE_MODE: response.data.data.MAINTENANCE_MODE || 'false', CATALOG_ONLY_MODE: response.data.data.CATALOG_ONLY_MODE || 'false', CATALOG_SHOW_PRICES: response.data.data.CATALOG_SHOW_PRICES || 'true', CATALOG_ALLOW_CART: response.data.data.CATALOG_ALLOW_CART || 'false', CATALOG_ALLOW_CHECKOUT: response.data.data.CATALOG_ALLOW_CHECKOUT || 'false', CATALOG_PREORDER_BTN: response.data.data.CATALOG_PREORDER_BTN || 'false', CHARITY_ROUND_STEP: response.data.data.CHARITY_ROUND_STEP || '10000', PAY_GATEWAY_CARD_ENABLE: response.data.data.PAY_GATEWAY_CARD_ENABLE || 'true', PAY_GATEWAY_WALLET_ENABLE: response.data.data.PAY_GATEWAY_WALLET_ENABLE || 'true', PAY_GATEWAY_ONLINE_ENABLE: response.data.data.PAY_GATEWAY_ONLINE_ENABLE || 'true', PAY_GATEWAY_COD_ENABLE: response.data.data.PAY_GATEWAY_COD_ENABLE || 'false', ZIBAL_MERCHANT: response.data.data.ZIBAL_MERCHANT || 'zibal', ZIBAL_SANDBOX: response.data.data.ZIBAL_SANDBOX || 'true', FRONTEND_URL: response.data.data.FRONTEND_URL || 'https://canina.ir', CONTACT_PHONE: response.data.data.CONTACT_PHONE || '۰۲۱-۸۸۸۸ ۴۴۴۴', CONTACT_EMAIL: response.data.data.CONTACT_EMAIL || 'info@canina-iran.com', SOCIAL_WHATSAPP: response.data.data.SOCIAL_WHATSAPP || '09120000000', SOCIAL_INSTAGRAM: response.data.data.SOCIAL_INSTAGRAM || 'https://instagram.com/canina_iran', SOCIAL_TELEGRAM: response.data.data.SOCIAL_TELEGRAM || 'https://t.me/canina_iran', CONTACT_ADDRESS: response.data.data.CONTACT_ADDRESS || 'تهران، جردن، خیابان سعیدی، ساختمان کانینا، طبقه ۵، واحد ۱۹', BRAND_LOGO_URL: response.data.data.BRAND_LOGO_URL || '/logo.png', ENAMAD_CODE: response.data.data.ENAMAD_CODE || '', THEME_PRIMARY_COLOR: response.data.data.THEME_PRIMARY_COLOR || '#7c3aed', BRAND_TYPOGRAPHY: response.data.data.BRAND_TYPOGRAPHY || 'vazirmatn', }); } }).catch(err => { console.error('Failed to fetch settings', err); }).finally(() => { if (isSubscribed) setIsLoading(false); }); return () => { isSubscribed = false; }; }, []); const handleSave = async (e: React.FormEvent) => { e.preventDefault(); try { setIsSaving(true); await api.put('/admin/settings', settings); toast.success('تنظیمات با موفقیت بروزرسانی شد.'); } catch (err) { console.error('Failed to update settings', err); toast.error('خطا در بروزرسانی تنظیمات'); } finally { setIsSaving(false); } }; return (
مدیریت پارامترهای اصلی و سیستمی کانینا