"use client";
import React, { useEffect, useRef, useState, useMemo } from "react";
import { Swiper, Divider, Popover, Toast } from "antd-mobile";
import { useRouter, useParams } from "next/navigation";
import Link from "next/link";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import {
faAngleLeft,
faAngleRight,
faEllipsisVertical,
faWarning,
faCircleMinus,
} from "@fortawesome/free-solid-svg-icons";
import requireAPI from "@/utils/requireAPI";
import AddWeChat from "@/components/AddWeChat";
import { handleFollow, checkRelation, handleBlock } from "@/api/public";
import { getStreamerDetailInfo } from "@/api/space";
import { get } from "@/utils/storeInfo";
import { handleShowVideo } from "@/utils/tools/handleFuns";
import clipboard from "copy-to-clipboard";
import ImagesMask from "@/components/ImagesMask";
import OwnImage from "@/components/OwnImage";
import OwnIcon from "@/components/OwnIcon";
// import * as Clipboard from "expo-clipboard";
export default function PersonSpace() {
const { mid } = useParams();
const router = useRouter();
const [streamerInfo, setStreamerInfo] = useState(null);
const [spaceData, setSpaceData] = useState(null);
const [postData, setPostData] = useState(null);
const [loading, setLoading] = useState(false);
const [visible, setVisible] = useState(false);
const [isFollow, setIsFollow] = useState(false);
const [topPhotos, setTopPhotos] = useState([]);
const [account, setAccount] = useState([]);
const currentIndex = useRef();
const imagesMaskRef = useRef(null);
// 获取屏幕高度
// const scrollHeight = 600;
useEffect(() => {
handleGetStreamerInfo();
getSpaceData();
getRelationData();
const account = get("account");
setAccount(account);
}, []);
const showPhotos = (photos, index) => {
currentIndex.current = index;
imagesMaskRef.current.show(photos, index, streamerInfo);
};
const handleGetStreamerInfo = async () => {
try {
setLoading(true);
const data = await getStreamerDetailInfo(Number(mid));
setStreamerInfo({
...data,
});
const photosArr = [
...data?.streamer_ext?.cover?.images?.map((item) => ({
url: item.urls[0],
id: item.id,
type: "video",
})),
...data?.streamer_ext?.album?.images.map((item) => ({
url: item.urls[0],
id: item.id,
type: "img",
})),
];
// console.log("photosArr", photosArr);
setTopPhotos(photosArr);
setLoading(false);
} catch (error) {
// console.error(error);
}
};
const getSpaceData = async () => {
try {
const data = await requireAPI("POST", "/api/zone/list_by_mid", {
body: {
mid: Number(mid),
},
});
if (data.ret === -1) {
Toast.show({
icon: "fail",
content: data.msg,
position: "top",
});
return;
}
if (data.data.list[0].previews.images.length === 0) {
const data2 = await requireAPI("POST", "/api/moment/list_by_mid", {
body: {
mid: Number(mid),
ct_upper_bound: Math.floor(new Date().getTime() / 1000),
offset: 0,
limit: 100,
},
});
if (data2.ret === -1) {
Toast.show({
icon: "fail",
content: data2.msg,
position: "top",
});
return;
}
setPostData(data2.data.list);
} else {
setSpaceData(data.data.list[0]);
}
} catch (error) {
// console.error(error);
}
};
const getRelationData = async () => {
const account = get("account");
const subMid = account.mid;
const objMid = Number(mid);
const temIsFollowed = await checkRelation(subMid, objMid, 0);
setIsFollow(temIsFollowed);
};
//保存内容到剪贴板
const copy = (_data) => {
// console.log("_data", _data);
clipboard(_data);
Toast.show({
icon: "success",
content: "已复制到剪贴板",
position: "top",
});
};
const toolPopover = useMemo(() => {
return (
{streamerInfo?.streamer_ext?.name}
来这找我玩