// screens-misc.jsx — Referrals + History + Profile/Settings const { useState: _ms_useState, useEffect: _ms_useEffect } = React; // ============================================================ // Referrals // ============================================================ function ReferralsScreen({ ctx }){ const { t: T, premium, navigate, campaign, miniContext } = ctx; const ref = window.RAVANA_DATA.referral_user; const [copied, setCopied] = _ms_useState(false); const [view, setView] = _ms_useState( campaign === 'referral_challenge' || miniContext === 'referral_challenge' ? 'challenge' : 'overview' ); const copy = () => { setCopied(true); if (navigator.clipboard) navigator.clipboard.writeText(ref.invite_link).catch(()=>{}); setTimeout(()=>setCopied(false), 1600); }; return (
18+ acknowledgement. By using Ravana Swap you confirm you are at least 18 years old and consent to the processing of biometric data for face-swap operations.
You retain ownership of any source/target media you upload. We process it temporarily for your selected action.
Purchases are non-refundable unless required by Telegram or local law. New Stripe subscriptions are disabled; existing auto-renewals can be cancelled in Manage subscription.
Do not use Ravana Swap to deceive, harass, or harm others. Violation results in immediate access revocation.