@quantabit/referral-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/services/referralApi.js","../src/types/index.js","../src/i18n/index.js","../src/hooks/useReferral.js","../src/components/Referral.jsx","../src/index.js"],"sourcesContent":["/**\n * Referral SDK - API 客户端\n * 邀请推荐系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 邀请推荐 API 客户端\n */\nexport class ReferralApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/referral', config);\n }\n\n // ============ 邀请码 ============\n\n /**\n * 获取我的邀请码\n */\n async getMyReferralCode() {\n return this.get('/my/code');\n }\n\n /**\n * 生成新邀请码\n * @param {Object} options - 生成选项\n */\n async generateCode(options = {}) {\n return this.post('/code/generate', options);\n }\n\n /**\n * 获取邀请链接\n * @param {string} channel - 渠道\n */\n async getInviteLink(channel = 'default') {\n return this.get('/my/link', { channel });\n }\n\n /**\n * 生成带参数的邀请链接\n * @param {Object} params - 链接参数\n */\n async generateInviteLink(params = {}) {\n return this.post('/link/generate', params);\n }\n\n // ============ 邀请绑定 ============\n\n /**\n * 绑定邀请关系\n * @param {string} referralCode - 邀请码\n */\n async bindReferral(referralCode) {\n return this.post('/bind', { code: referralCode });\n }\n\n /**\n * 验证邀请码\n * @param {string} code - 邀请码\n */\n async validateCode(code) {\n return this.get('/validate', { code });\n }\n\n /**\n * 获取我的邀请人信息\n */\n async getMyInviter() {\n return this.get('/my/inviter');\n }\n\n // ============ 邀请记录 ============\n\n /**\n * 获取我的邀请列表\n * @param {Object} params - 查询参数\n */\n async getMyInvites(params = {}) {\n return this.get('/my/invites', params);\n }\n\n /**\n * 获取邀请统计\n */\n async getInviteStats() {\n return this.get('/my/stats');\n }\n\n /**\n * 获取邀请排行榜\n * @param {Object} params - 查询参数\n */\n async getLeaderboard(params = {}) {\n return this.get('/leaderboard', params);\n }\n\n /**\n * 获取我的排名\n */\n async getMyRank() {\n return this.get('/my/rank');\n }\n\n // ============ 邀请奖励 ============\n\n /**\n * 获取邀请奖励规则\n */\n async getRewardRules() {\n return this.get('/rewards/rules');\n }\n\n /**\n * 获取我的邀请奖励\n * @param {Object} params - 查询参数\n */\n async getMyRewards(params = {}) {\n return this.get('/my/rewards', params);\n }\n\n /**\n * 获取待领取奖励\n */\n async getPendingRewards() {\n return this.get('/my/rewards/pending');\n }\n\n /**\n * 领取奖励\n * @param {string} rewardId - 奖励 ID\n */\n async claimReward(rewardId) {\n return this.post(`/rewards/${rewardId}/claim`);\n }\n\n /**\n * 一键领取所有奖励\n */\n async claimAllRewards() {\n return this.post('/rewards/claim-all');\n }\n\n // ============ 邀请活动 ============\n\n /**\n * 获取进行中的邀请活动\n */\n async getActiveEvents() {\n return this.get('/events/active');\n }\n\n /**\n * 获取活动详情\n * @param {string} eventId - 活动 ID\n */\n async getEvent(eventId) {\n return this.get(`/events/${eventId}`);\n }\n\n /**\n * 参与邀请活动\n * @param {string} eventId - 活动 ID\n */\n async joinEvent(eventId) {\n return this.post(`/events/${eventId}/join`);\n }\n\n /**\n * 获取活动进度\n * @param {string} eventId - 活动 ID\n */\n async getEventProgress(eventId) {\n return this.get(`/events/${eventId}/my/progress`);\n }\n\n // ============ 兼容方法 ============\n\n async getReferralInfo() {\n try {\n const codeData = await this.getMyReferralCode();\n const statsData = await this.getInviteStats();\n return { ...codeData, ...statsData };\n } catch {\n return { code: '' };\n }\n }\n\n async getMyReferrals(params = {}) {\n return this.getMyInvites(params);\n }\n\n async getReferralStats() {\n return this.getInviteStats();\n }\n\n async getRewardConfig() {\n return this.getRewardRules();\n }\n}\n\n// 创建默认实例\nexport const referralApi = new ReferralApiClient();\n\n\n\nexport default referralApi;\n","/**\n * Referral SDK - 类型定义\n */\n\n// 邀请状态\nexport const InviteStatus = {\n PENDING: 'pending', // 待验证\n VALID: 'valid', // 已生效\n INVALID: 'invalid', // 已失效\n REWARDED: 'rewarded', // 已发放奖励\n};\n\n// 奖励类型\nexport const RewardType = {\n POINTS: 'points', // 积分\n TOKEN: 'token', // 代币\n CASH: 'cash', // 现金\n COUPON: 'coupon', // 优惠券\n VIP: 'vip', // VIP时长\n};\n\n// 邀请层级\nexport const InviteLevel = {\n LEVEL_1: 1, // 直邀\n LEVEL_2: 2, // 二级\n LEVEL_3: 3, // 三级\n};\n\n/**\n * 创建默认邀请配置\n */\nexport function createDefaultReferralConfig(overrides = {}) {\n return {\n max_levels: 2, // 最大层级\n level_rewards: [ // 各层级奖励\n { level: 1, reward_type: RewardType.POINTS, amount: 100 },\n { level: 2, reward_type: RewardType.POINTS, amount: 50 },\n ],\n inviter_reward: true, // 邀请人是否有奖励\n invitee_reward: true, // 被邀请人是否有奖励\n invitee_reward_amount: 50, // 被邀请人奖励金额\n valid_condition: 'register', // 生效条件: register, verify, purchase\n max_invites_per_day: null, // 每日最大邀请数\n total_invite_limit: null, // 总邀请数限制\n ...overrides,\n };\n}\n\n/**\n * 创建默认邀请记录\n */\nexport function createDefaultInviteRecord(overrides = {}) {\n return {\n id: null,\n inviter_did: null,\n invitee_did: null,\n invitee_name: null,\n invitee_avatar: null,\n level: 1,\n status: InviteStatus.PENDING,\n reward_type: RewardType.POINTS,\n reward_amount: 0,\n reward_claimed: false,\n created_at: null,\n valid_at: null,\n ...overrides,\n };\n}\n\n/**\n * 创建默认邀请统计\n */\nexport function createDefaultInviteStats(overrides = {}) {\n return {\n total_invites: 0,\n valid_invites: 0,\n level_1_invites: 0,\n level_2_invites: 0,\n today_invites: 0,\n pending_rewards: 0,\n claimed_rewards: 0,\n total_rewards: 0,\n rank: null,\n ...overrides,\n };\n}\n\n/**\n * 生成邀请链接\n */\nexport function generateInviteLink(baseUrl, code) {\n const url = new URL(baseUrl);\n url.searchParams.set('ref', code);\n return url.toString();\n}\n\n/**\n * 从 URL 提取邀请码\n */\nexport function extractInviteCode(url) {\n try {\n const urlObj = new URL(url);\n return urlObj.searchParams.get('ref') || null;\n } catch {\n return null;\n }\n}\n\nexport const ReferralStatus = {};\n","export const SUPPORTED_LANGUAGES=['en','zh','ja','ko'];export const messages={en:{'ref.invite':'Invite Friends','ref.rewards':'Rewards','ref.copied':'Copied!'},zh:{'ref.invite':'邀请好友','ref.rewards':'奖励','ref.copied':'已复制!'},\nja:{'ref.invite':'友達を招待','ref.rewards':'報酬','ref.copied':'コピーしました!'},\nko:{'ref.invite':'친구 초대','ref.rewards':'보상','ref.copied':'복사되었습니다!'}};\nlet currentLang='en';export function setLanguage(l){if(SUPPORTED_LANGUAGES.includes(l))currentLang=l;}export function getLanguage(){return currentLang;}export function t(k){return messages[currentLang]?.[k]||messages.en?.[k]||k;}\n","/**\n * Referral SDK - React Hooks\n * 邀请系统相关的状态管理\n */\n\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport { referralApi } from '../services/referralApi';\n\n/**\n * 获取邀请信息\n */\nexport function useReferralInfo() {\n const [info, setInfo] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n\n const fetchInfo = useCallback(async () => {\n try {\n setLoading(true);\n const response = await referralApi.getReferralInfo();\n setInfo(response);\n setError(null);\n } catch (err) {\n setError(err.message);\n } finally {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n fetchInfo();\n }, [fetchInfo]);\n\n const referralLink = useMemo(() => {\n if (!info?.code) return '';\n return `${window.location.origin}/invite/${info.code}`;\n }, [info]);\n\n return { info, referralLink, loading, error, refresh: fetchInfo };\n}\n\n/**\n * 我的邀请列表\n */\nexport function useMyReferrals(options = {}) {\n const [referrals, setReferrals] = useState([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [pagination, setPagination] = useState({ page: 1, total: 0, hasMore: true });\n\n const { status, limit = 20 } = options;\n\n const fetchReferrals = useCallback(async (page = 1) => {\n try {\n setLoading(true);\n const response = await referralApi.getMyReferrals({ status, page, limit });\n \n if (page === 1) {\n setReferrals(response.data || []);\n } else {\n setReferrals(prev => [...prev, ...(response.data || [])]);\n }\n \n setPagination({\n page,\n total: response.total || 0,\n hasMore: response.hasMore || false,\n });\n setError(null);\n } catch (err) {\n setError(err.message);\n } finally {\n setLoading(false);\n }\n }, [status, limit]);\n\n useEffect(() => {\n fetchReferrals(1);\n }, [fetchReferrals]);\n\n const loadMore = useCallback(() => {\n if (!loading && pagination.hasMore) {\n fetchReferrals(pagination.page + 1);\n }\n }, [loading, pagination, fetchReferrals]);\n\n // 按状态分组\n const grouped = useMemo(() => {\n const groups = { pending: [], confirmed: [], rewarded: [] };\n referrals.forEach(r => {\n if (groups[r.status]) groups[r.status].push(r);\n });\n return groups;\n }, [referrals]);\n\n return { referrals, grouped, loading, error, pagination, loadMore, refresh: () => fetchReferrals(1) };\n}\n\n/**\n * 邀请统计\n */\nexport function useReferralStats() {\n const [stats, setStats] = useState(null);\n const [loading, setLoading] = useState(true);\n\n const fetchStats = useCallback(async () => {\n try {\n setLoading(true);\n const response = await referralApi.getReferralStats();\n setStats(response);\n } catch (err) {\n console.error('Get referral stats error:', err);\n } finally {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n fetchStats();\n }, [fetchStats]);\n\n return { stats, loading, refresh: fetchStats };\n}\n\n/**\n * 邀请排行榜\n */\nexport function useReferralLeaderboard(period = 'all') {\n const [leaderboard, setLeaderboard] = useState([]);\n const [myRank, setMyRank] = useState(null);\n const [loading, setLoading] = useState(true);\n\n const fetchLeaderboard = useCallback(async () => {\n try {\n setLoading(true);\n const response = await referralApi.getLeaderboard({ period });\n setLeaderboard(response.data || []);\n setMyRank(response.myRank || null);\n } catch (err) {\n console.error('Get leaderboard error:', err);\n } finally {\n setLoading(false);\n }\n }, [period]);\n\n useEffect(() => {\n fetchLeaderboard();\n }, [fetchLeaderboard]);\n\n return { leaderboard, myRank, loading, refresh: fetchLeaderboard };\n}\n\n/**\n * 复制功能\n */\nexport function useCopyToClipboard() {\n const [copied, setCopied] = useState(false);\n\n const copy = useCallback(async (text) => {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n return true;\n } catch (err) {\n console.error('Copy error:', err);\n // 降级方案\n const textarea = document.createElement('textarea');\n textarea.value = text;\n document.body.appendChild(textarea);\n textarea.select();\n document.execCommand('copy');\n document.body.removeChild(textarea);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n return true;\n }\n }, []);\n\n return { copy, copied };\n}\n\n/**\n * 分享功能\n */\nexport function useShare() {\n const [sharing, setSharing] = useState(false);\n\n const share = useCallback(async (data) => {\n setSharing(true);\n \n try {\n if (navigator.share) {\n await navigator.share({\n title: data.title,\n text: data.text,\n url: data.url,\n });\n return true;\n }\n return false;\n } catch (err) {\n if (err.name !== 'AbortError') {\n console.error('Share error:', err);\n }\n return false;\n } finally {\n setSharing(false);\n }\n }, []);\n\n const canShare = typeof navigator !== 'undefined' && !!navigator.share;\n\n return { share, sharing, canShare };\n}\n\n/**\n * 邀请奖励配置\n */\nexport function useReferralRewards() {\n const [rewards, setRewards] = useState(null);\n const [loading, setLoading] = useState(true);\n\n const fetchRewards = useCallback(async () => {\n try {\n setLoading(true);\n const response = await referralApi.getRewardConfig();\n setRewards(response);\n } catch (err) {\n console.error('Get reward config error:', err);\n } finally {\n setLoading(false);\n }\n }, []);\n\n useEffect(() => {\n fetchRewards();\n }, [fetchRewards]);\n\n return { rewards, loading, refresh: fetchRewards };\n}\n\n","/**\n * Referral SDK - React 组件\n * 邀请系统可视化组件\n */\n\nimport React, { useState, useCallback } from 'react';\nimport {\n useReferralInfo,\n useMyReferrals,\n useReferralStats,\n useReferralLeaderboard,\n useCopyToClipboard,\n useShare,\n useReferralRewards,\n} from '../hooks/useReferral';\nimport { t } from '../i18n';\nimport './Referral.css';\n\n/**\n * 邀请链接卡片\n */\nexport function ReferralLinkCard() {\n const { info, referralLink, loading } = useReferralInfo();\n const { copy, copied } = useCopyToClipboard();\n const { share, canShare } = useShare();\n\n const handleShare = useCallback(() => {\n share({\n title: t('inviteFriends'),\n text: t('earnRewards'),\n url: referralLink,\n });\n }, [share, referralLink]);\n\n if (loading) {\n return (\n <div className=\"eco-referral-card eco-referral-loading\">\n <div className=\"eco-referral-spinner\" />\n </div>\n );\n }\n\n return (\n <div className=\"eco-referral-card\">\n <h3>{t('inviteFriends')}</h3>\n \n <div className=\"eco-referral-code\">\n <span className=\"eco-referral-code-label\">{t('referralCode')}</span>\n <div className=\"eco-referral-code-value\">\n <span>{info?.code}</span>\n <button onClick={() => copy(info?.code)}>\n {copied ? t('copied') : t('copy')}\n </button>\n </div>\n </div>\n \n <div className=\"eco-referral-link\">\n <span className=\"eco-referral-link-label\">{t('referralLink')}</span>\n <div className=\"eco-referral-link-value\">\n <input type=\"text\" value={referralLink} readOnly />\n <button onClick={() => copy(referralLink)}>\n {copied ? t('copied') : t('copyLink')}\n </button>\n </div>\n </div>\n \n {canShare && (\n <button className=\"eco-referral-share-btn\" onClick={handleShare}>\n {t('share')}\n </button>\n )}\n </div>\n );\n}\n\n/**\n * 邀请统计卡片\n */\nexport function ReferralStatsCard() {\n const { stats, loading } = useReferralStats();\n\n if (loading) {\n return (\n <div className=\"eco-referral-stats eco-referral-loading\">\n <div className=\"eco-referral-spinner\" />\n </div>\n );\n }\n\n return (\n <div className=\"eco-referral-stats\">\n <div className=\"eco-referral-stat\">\n <span className=\"eco-referral-stat-value\">{stats?.totalInvited || 0}</span>\n <span className=\"eco-referral-stat-label\">{t('totalInvited')}</span>\n </div>\n <div className=\"eco-referral-stat\">\n <span className=\"eco-referral-stat-value\">{stats?.pendingRewards || 0}</span>\n <span className=\"eco-referral-stat-label\">{t('pendingRewards')}</span>\n </div>\n <div className=\"eco-referral-stat\">\n <span className=\"eco-referral-stat-value\">{stats?.earnedRewards || 0}</span>\n <span className=\"eco-referral-stat-label\">{t('earnedRewards')}</span>\n </div>\n </div>\n );\n}\n\n/**\n * 邀请记录列表\n */\nexport function ReferralList() {\n const { referrals, loading, pagination, loadMore } = useMyReferrals();\n\n if (loading && referrals.length === 0) {\n return (\n <div className=\"eco-referral-list eco-referral-loading\">\n <div className=\"eco-referral-spinner\" />\n </div>\n );\n }\n\n if (referrals.length === 0) {\n return (\n <div className=\"eco-referral-list eco-referral-empty\">\n <span className=\"eco-referral-empty-icon\">👥</span>\n <span>{t('noReferrals')}</span>\n </div>\n );\n }\n\n return (\n <div className=\"eco-referral-list\">\n <h4>{t('myReferrals')}</h4>\n \n {referrals.map((item) => (\n <div key={item.id} className=\"eco-referral-item\">\n <img\n className=\"eco-referral-avatar\"\n src={item.user?.avatar || '/default-avatar.png'}\n alt={item.user?.name}\n />\n <div className=\"eco-referral-item-info\">\n <span className=\"eco-referral-item-name\">{item.user?.name}</span>\n <span className=\"eco-referral-item-time\">{new Date(item.createdAt).toLocaleDateString()}</span>\n </div>\n <span className={`eco-referral-status eco-referral-status-${item.status}`}>\n {t(item.status)}\n </span>\n </div>\n ))}\n \n {pagination.hasMore && (\n <button className=\"eco-referral-load-more\" onClick={loadMore} disabled={loading}>\n {loading ? '...' : t('loading')}\n </button>\n )}\n </div>\n );\n}\n\n/**\n * 邀请排行榜\n */\nexport function ReferralLeaderboard() {\n const [period, setPeriod] = useState('all');\n const { leaderboard, myRank, loading } = useReferralLeaderboard(period);\n\n return (\n <div className=\"eco-referral-leaderboard\">\n <div className=\"eco-referral-leaderboard-header\">\n <h4>{t('leaderboard')}</h4>\n <select value={period} onChange={(e) => setPeriod(e.target.value)}>\n <option value=\"daily\">今日</option>\n <option value=\"weekly\">本周</option>\n <option value=\"monthly\">本月</option>\n <option value=\"all\">全部</option>\n </select>\n </div>\n\n {loading ? (\n <div className=\"eco-referral-loading\">\n <div className=\"eco-referral-spinner\" />\n </div>\n ) : (\n <>\n <div className=\"eco-referral-leaderboard-list\">\n {leaderboard.map((item, qbit) => (\n <div key={item.userId} className=\"eco-referral-rank-item\">\n <span className={`eco-referral-rank eco-referral-rank-${qbit + 1}`}>\n {qbit + 1}\n </span>\n <img\n className=\"eco-referral-rank-avatar\"\n src={item.avatar || '/default-avatar.png'}\n alt={item.name}\n />\n <span className=\"eco-referral-rank-name\">{item.name}</span>\n <span className=\"eco-referral-rank-count\">{item.count}</span>\n </div>\n ))}\n </div>\n\n {myRank && (\n <div className=\"eco-referral-my-rank\">\n <span>{t('rank')}: #{myRank.rank}</span>\n <span>{t('inviteCount')}: {myRank.count}</span>\n </div>\n )}\n </>\n )}\n </div>\n );\n}\n\n/**\n * 邀请规则\n */\nexport function ReferralRules() {\n const { rewards } = useReferralRewards();\n\n return (\n <div className=\"eco-referral-rules\">\n <h4>{t('howItWorks')}</h4>\n \n <div className=\"eco-referral-steps\">\n <div className=\"eco-referral-step\">\n <span className=\"eco-referral-step-num\">1</span>\n <span className=\"eco-referral-step-text\">{t('step1')}</span>\n </div>\n <div className=\"eco-referral-step\">\n <span className=\"eco-referral-step-num\">2</span>\n <span className=\"eco-referral-step-text\">{t('step2')}</span>\n </div>\n <div className=\"eco-referral-step\">\n <span className=\"eco-referral-step-num\">3</span>\n <span className=\"eco-referral-step-text\">{t('step3')}</span>\n </div>\n </div>\n\n {rewards && (\n <div className=\"eco-referral-rewards\">\n <div className=\"eco-referral-reward\">\n <span className=\"eco-referral-reward-label\">{t('inviteReward')}</span>\n <span className=\"eco-referral-reward-value\">{rewards.inviterReward} 积分</span>\n </div>\n <div className=\"eco-referral-reward\">\n <span className=\"eco-referral-reward-label\">{t('inviteeReward')}</span>\n <span className=\"eco-referral-reward-value\">{rewards.inviteeReward} 积分</span>\n </div>\n </div>\n )}\n </div>\n );\n}\n\n/**\n * 邀请页面\n */\nexport function ReferralPage() {\n return (\n <div className=\"eco-referral-page\">\n <ReferralLinkCard />\n <ReferralStatsCard />\n <ReferralRules />\n <ReferralList />\n <ReferralLeaderboard />\n </div>\n );\n}\n\n","/**\n * @quantabit/referral-sdk\n * Referral System SDK - Full Version\n */\n\n// API Client\nexport { referralApi, ReferralApiClient } from './services/referralApi';\n\n// Types\nexport { ReferralStatus } from './types';\n\n// i18n\nexport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\n// React Hooks\nexport {\n useReferralInfo,\n useMyReferrals,\n useReferralStats,\n useReferralLeaderboard,\n useCopyToClipboard,\n useShare,\n useReferralRewards,\n} from './hooks/useReferral';\n\n// React Components\nexport {\n ReferralLinkCard,\n ReferralStatsCard,\n ReferralList,\n ReferralLeaderboard,\n ReferralRules,\n ReferralPage,\n} from './components/Referral';\n\n// Shortcut Methods\nimport { referralApi } from './services/referralApi';\n\nexport const getReferralInfo = (...args) => referralApi.getReferralInfo(...args);\nexport const getMyReferrals = (...args) => referralApi.getMyReferrals(...args);\nexport const getReferralStats = (...args) => referralApi.getReferralStats(...args);\nexport const getLeaderboard = (...args) => referralApi.getLeaderboard(...args);\n\nimport './styles/referral.css';\n"],"names":["ReferralApiClient","BaseApiClient","constructor","config","getMyReferralCode","get","generateCode","options","post","getInviteLink","channel","generateInviteLink","params","bindReferral","referralCode","code","validateCode","getMyInviter","getMyInvites","getInviteStats","getLeaderboard","getMyRank","getRewardRules","getMyRewards","getPendingRewards","claimReward","rewardId","claimAllRewards","getActiveEvents","getEvent","eventId","joinEvent","getEventProgress","getReferralInfo","codeData","statsData","getMyReferrals","getReferralStats","getRewardConfig","referralApi","ReferralStatus","SUPPORTED_LANGUAGES","messages","en","zh","ja","ko","currentLang","setLanguage","l","includes","getLanguage","t","k","useReferralInfo","info","setInfo","useState","loading","setLoading","error","setError","fetchInfo","useCallback","response","err","message","useEffect","referralLink","useMemo","window","location","origin","refresh","useMyReferrals","referrals","setReferrals","pagination","setPagination","page","total","hasMore","status","limit","fetchReferrals","data","prev","loadMore","grouped","groups","pending","confirmed","rewarded","forEach","r","push","useReferralStats","stats","setStats","fetchStats","console","useReferralLeaderboard","period","leaderboard","setLeaderboard","myRank","setMyRank","fetchLeaderboard","useCopyToClipboard","copied","setCopied","copy","text","navigator","clipboard","writeText","setTimeout","textarea","document","createElement","value","body","appendChild","select","execCommand","removeChild","useShare","sharing","setSharing","share","title","url","name","canShare","useReferralRewards","rewards","setRewards","fetchRewards","ReferralLinkCard","handleShare","React","className","onClick","type","readOnly","ReferralStatsCard","totalInvited","pendingRewards","earnedRewards","ReferralList","length","map","item","key","id","src","user","avatar","alt","Date","createdAt","toLocaleDateString","disabled","ReferralLeaderboard","setPeriod","onChange","e","target","Fragment","qbit","userId","count","rank","ReferralRules","inviterReward","inviteeReward","ReferralPage","args"],"mappings":"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"}