139 lines
5.0 KiB
React
139 lines
5.0 KiB
React
|
import {
|
|||
|
View,
|
|||
|
Text,
|
|||
|
Modal,
|
|||
|
TouchableWithoutFeedback,
|
|||
|
TouchableOpacity,
|
|||
|
Alert,
|
|||
|
} from "react-native";
|
|||
|
import React, { useState, useMemo } from "react";
|
|||
|
import { useTailwind } from "tailwind-rn";
|
|||
|
import { LinearProgress, Icon } from "@rneui/themed";
|
|||
|
import * as Clipboard from "expo-clipboard";
|
|||
|
|
|||
|
/*
|
|||
|
data格式:
|
|||
|
{
|
|||
|
nowFriendshipNum:int,
|
|||
|
totalFriendshipNum:int,
|
|||
|
wechat:string
|
|||
|
}
|
|||
|
*/
|
|||
|
|
|||
|
export default function FriendShipModal({ visible, setVisible, data }) {
|
|||
|
const tailwind = useTailwind();
|
|||
|
const friendshipProgress = useMemo(
|
|||
|
() => Math.floor((data.nowFriendshipNum / data.totalFriendshipNum) * 100),
|
|||
|
[data]
|
|||
|
);
|
|||
|
const [isWechatShow, setIsWechatShow] = useState(false);
|
|||
|
return (
|
|||
|
<Modal
|
|||
|
visible={visible}
|
|||
|
transparent={true}
|
|||
|
statusBarTranslucent
|
|||
|
animationType="fade"
|
|||
|
>
|
|||
|
<TouchableWithoutFeedback onPress={() => setVisible(false)}>
|
|||
|
<View
|
|||
|
style={{
|
|||
|
backgroundColor: "rgba(0,0,0,0.3)",
|
|||
|
...tailwind("flex-1 justify-center items-center"),
|
|||
|
}}
|
|||
|
>
|
|||
|
<View style={tailwind("items-start bg-white rounded-lg p-4 w-3/4")}>
|
|||
|
<View style={tailwind("flex-row items-end")}>
|
|||
|
<Text style={tailwind("text-base")}>当前亲密度为:</Text>
|
|||
|
<Text style={tailwind("text-2xl text-red-400")}>
|
|||
|
{`${friendshipProgress}%`}
|
|||
|
</Text>
|
|||
|
</View>
|
|||
|
<LinearProgress
|
|||
|
style={tailwind("flex-row w-full h-2 mt-2 rounded-full")}
|
|||
|
value={friendshipProgress / 100}
|
|||
|
color="#f87171"
|
|||
|
variant="determinate"
|
|||
|
/>
|
|||
|
<Text
|
|||
|
style={tailwind("text-sm text-red-400")}
|
|||
|
>{`${data.nowFriendshipNum}/${data.totalFriendshipNum} 亲密值`}</Text>
|
|||
|
<Text style={tailwind("text-sm text-gray-400 mt-2")}>
|
|||
|
1金币=1亲密值,亲密值达到
|
|||
|
<Text style={tailwind("text-red-400")}>
|
|||
|
{data.totalFriendshipNum}
|
|||
|
</Text>
|
|||
|
即可解锁她的微信哦!
|
|||
|
</Text>
|
|||
|
{friendshipProgress >= 100 ? (
|
|||
|
<TouchableOpacity
|
|||
|
style={{
|
|||
|
...tailwind(
|
|||
|
"w-full p-2 rounded-full mt-2 flex-row justify-center items-center"
|
|||
|
),
|
|||
|
backgroundColor: isWechatShow ? "#9ca3af" : "#4ade80",
|
|||
|
}}
|
|||
|
onPress={async () => {
|
|||
|
if (!isWechatShow) {
|
|||
|
setIsWechatShow(true);
|
|||
|
} else {
|
|||
|
await Clipboard.setStringAsync(data.wechat);
|
|||
|
Alert.alert(null, "复制成功");
|
|||
|
setIsWechatShow(false);
|
|||
|
}
|
|||
|
}}
|
|||
|
>
|
|||
|
<Text style={tailwind("text-base text-white text-center")}>
|
|||
|
{isWechatShow ? data.wechat : "查看微信"}
|
|||
|
</Text>
|
|||
|
{isWechatShow && (
|
|||
|
<Icon
|
|||
|
type="ionicon"
|
|||
|
name="copy"
|
|||
|
color="#ffffff"
|
|||
|
size={12}
|
|||
|
containerStyle={tailwind("ml-2")}
|
|||
|
/>
|
|||
|
)}
|
|||
|
</TouchableOpacity>
|
|||
|
) : (
|
|||
|
<TouchableOpacity
|
|||
|
activeOpacity={1}
|
|||
|
style={tailwind("w-full p-2 bg-gray-300 rounded-full mt-2")}
|
|||
|
>
|
|||
|
<Text style={tailwind("text-base text-white text-center")}>
|
|||
|
暂未解锁
|
|||
|
</Text>
|
|||
|
</TouchableOpacity>
|
|||
|
)}
|
|||
|
<Text style={tailwind("text-sm text-red-600 mt-2 font-semibold")}>
|
|||
|
温馨提示
|
|||
|
</Text>
|
|||
|
<Text style={tailwind("text-xs text-red-400 mt-1")}>
|
|||
|
1、亲密度代表了熟悉程度,循序渐进的积累更有助于稳固彼此的亲密关系哦!
|
|||
|
{"\n"}
|
|||
|
2、平台禁止一切诈骗、涉黄等违法行为。{"\n"}
|
|||
|
3、如主播在直播任何场合以陪玩、送礼等方式进行诱导用户添加个人联系方式、打赏、私下交易,进行违法行为,一经发现永久封禁,请谨慎判断,以防人身或财产损失。请用户注意财产安全,蓬防网络诈骗。此外,用户在第三方平台与主播产生的任何风险与财产损失与平台无关。
|
|||
|
</Text>
|
|||
|
<View style={tailwind("items-center justify-center w-full")}>
|
|||
|
<Text
|
|||
|
style={tailwind(
|
|||
|
"text-xs text-red-600 mt-2 font-semibold text-center"
|
|||
|
)}
|
|||
|
>
|
|||
|
24小时内未成功添加微信请联系客服
|
|||
|
</Text>
|
|||
|
<Text
|
|||
|
style={tailwind(
|
|||
|
"text-xs text-red-600 font-semibold text-center"
|
|||
|
)}
|
|||
|
>
|
|||
|
若发现主播违规行为请联系客服进行举报
|
|||
|
</Text>
|
|||
|
</View>
|
|||
|
</View>
|
|||
|
</View>
|
|||
|
</TouchableWithoutFeedback>
|
|||
|
</Modal>
|
|||
|
);
|
|||
|
}
|