import { Copy, Gift, Share2, Users } from 'lucide-react'; import { api } from '@/api'; import { useAsync } from '@/lib/useAsync'; import { useToast } from '@/components/Toast'; import { ErrorState, LoadingState, PrimaryButton, Screen, ScreenBody, ScreenHeader } from '@/components/ui'; import { formatToman, toFa } from '@/lib/format'; /** لینکِ دعوت: هر کس با آن بیاید و شماره ثبت کند، معرفیِ تو حساب می‌شود. */ export function inviteLink(code: string): string { return `${window.location.origin}/?ref=${encodeURIComponent(code)}`; } export function InviteScreen() { const toast = useToast(); const me = useAsync(() => api.affiliate.me(), [], { key: 'affiliate' }); async function share(code: string) { const url = inviteLink(code); const text = 'با تدریسینو ریاضی رو قدم‌به‌قدم یاد بگیر:'; if (navigator.share) { try { await navigator.share({ title: 'تدریسینو ریاضی', text, url }); return; } catch { /* کاربر لغو کرد؛ می‌رویم سراغِ کپی */ } } try { await navigator.clipboard.writeText(`${text} ${url}`); toast('لینک کپی شد', 'success'); } catch { toast(url); } } return ( {me.loading ? ( ) : me.error || !me.data ? ( ) : ( <>
کد معرفی تو
{[ { label: 'معرفی‌شده', value: toFa(me.data.referredCount) }, { label: 'خرید کرده', value: toFa(me.data.paidCount) }, { label: 'پورسانت', value: formatToman(me.data.totalCommission) }, ].map((s) => (
{s.value} {s.label}
))}

دوستت باید با لینک تو وارد بشه و شماره‌ش رو ثبت کنه. اگه اشتراک خرید، {toFa(Math.round(me.data.commissionRate * 100))}٪ مبلغ پورسانت توئه.

void share(me.data!.referralCode)}> فرستادن لینک دعوت )}
); }