21 lines
615 B
TypeScript
21 lines
615 B
TypeScript
"use client"
|
||
|
||
import { useSearchParams } from "next/navigation"
|
||
import { useEffect } from "react"
|
||
import { setPendingStreamerRef } from "@/lib/streamer-bind"
|
||
|
||
/**
|
||
* 捕获 URL 中的 ref(主播 ID 或短码),写入 localStorage,供登录后绑定(参考 Soul 创业实验)
|
||
* 放在根 layout 下,仅客户端执行
|
||
*/
|
||
export function StreamerRefCapture() {
|
||
const searchParams = useSearchParams()
|
||
|
||
useEffect(() => {
|
||
const ref = searchParams.get("ref") ?? searchParams.get("streamerId") ?? ""
|
||
if (ref && ref.trim()) setPendingStreamerRef(ref.trim())
|
||
}, [searchParams])
|
||
|
||
return null
|
||
}
|