"use client"

import { useEffect } from "react"
import { usePathname, useSearchParams } from "next/navigation"

/**
 * 捕获分享链接上的 ?ref=xxx 并写入本地存储
 * - 目的：分销/推荐码在后续注册登录时可读取
 * - 对齐小程序：pendingReferralCode
 */
export function ReferralCapture() {
  const pathname = usePathname()
  const searchParams = useSearchParams()

  useEffect(() => {
    // admin 不参与分销 ref 逻辑
    if (pathname?.startsWith("/admin")) return

    const ref = searchParams?.get("ref")?.trim()
    if (!ref) return

    try {
      // 双写：对齐小程序 key，并留一份更直观的 key
      localStorage.setItem("pendingReferralCode", ref)
      localStorage.setItem("referral_code", ref)

      // 兜底：写 cookie，方便服务端/客户端读取（30天）
      const maxAge = 60 * 60 * 24 * 30
      document.cookie = `pendingReferralCode=${encodeURIComponent(ref)}; Path=/; Max-Age=${maxAge}; SameSite=Lax`
      document.cookie = `ref=${encodeURIComponent(ref)}; Path=/; Max-Age=${maxAge}; SameSite=Lax`
    } catch {
      // 忽略写入失败（隐私模式/禁用存储等），不影响页面访问
    }
  }, [pathname, searchParams])

  return null
}

