"use client"; import React, { useEffect, useState } from "react"; import { Divider, Toast } from "antd-mobile"; import { useRouter, useParams } from "next/navigation"; import clipboard from "copy-to-clipboard"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faAngleLeft, faAngleRight } from "@fortawesome/free-solid-svg-icons"; import { getStreamerInfo } from "@/api/space"; import requireAPI from "@/utils/requireAPI"; export default function ShareSpace() { const router = useRouter(); const { mid } = useParams(); const webUrl = process.env.NEXT_PUBLIC_WEB_URL; const [streamerInfo, setStreamerInfo] = useState(null); const [shareWebUrl, setShareWebUrl] = useState("https://tiefen.fun"); function generateRandomString(length = 10) { const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; let result = ""; for (let i = 0; i < length; i++) { result += characters.charAt( Math.floor(Math.random() * characters.length) ); } return result; } useEffect(() => { getStreamerInfo(Number(mid)).then((res) => { setStreamerInfo(res); }); function getRandomUrl(urls) { return urls[Math.floor(Math.random() * urls.length)]; } const getShareWebUrl = async () => { try { const data = await requireAPI("POST", "/api/config/cold_config", { body: {}, }); if (data.ret === -1) { Toast.show({ content: data.msg, }); return; } const randomUrl = getRandomUrl(data.data.share_redirect_urls); setShareWebUrl(randomUrl); } catch (error) { console.error(error); } }; getShareWebUrl(); }, []); //保存内容到剪贴板 const copy = (_data) => { clipboard(_data); Toast.show({ icon: "success", content: "已复制到剪贴板", position: "top", }); }; //复制口令 const copyShareCode = () => { const shareCode = `【${streamerInfo?.streamer_ext?.name}】『ID:${streamerInfo?.streamer_ext?.user_id}』,复制此条消息,打开铁粉空间APP,查看详情${webUrl}/zone/${streamerInfo?.streamer_ext?.user_id}`; copy(shareCode); }; //复制邀请链接 const copyShareUrl = () => { const randomStr = generateRandomString(); const shareCode = `${shareWebUrl}/zone/${streamerInfo?.streamer_ext?.user_id}/${randomStr}`; copy(shareCode); }; return (
{ router.back(); }} />

分享空间

复制口令
复制邀请链接
{ router.push("/space/share/" + streamerInfo?.streamer_ext?.user_id); }} className="flex justify-between pt-4 pb-2" > 生成分享卡片
); }