From 8fe9424b620ca464bed484d3506f70b4abf66261 Mon Sep 17 00:00:00 2001 From: yezian Date: Mon, 17 Mar 2025 20:43:43 +0800 Subject: [PATCH] anln_0000001_2.1 (#34) Co-authored-by: al Reviewed-on: https://git.wishpal.cn/wishpal_ironfan/tiefen_space_app/pulls/34 --- .env | 3 +- assets/images/newM.png | Bin 0 -> 102156 bytes package.json | 1 + screeens/CreateSpace/index.jsx | 556 ++++++++++-------- screeens/Login/PasswordLogin/index.jsx | 192 +++++- screeens/Login/PhoneNumLogin/index.jsx | 264 +++++++-- .../components/AutoAnswerBtn/index.jsx | 34 ++ .../components/OwnBubble/index.jsx | 109 ++++ screeens/Messages/MessageDetail/index.jsx | 109 ++-- screeens/My/index.jsx | 3 - .../components/MessageList/index.jsx | 16 +- .../Refund/RefundList/PendingReview/index.jsx | 24 +- screeens/Refund/RefundList/Reviewed/index.jsx | 61 +- screeens/Refund/RefundList/index.jsx | 10 +- screeens/Search/HostList/index.jsx | 2 +- screeens/Space/SpaceList/index.jsx | 50 +- screeens/SpaceIntroduce/index.jsx | 65 +- .../SpacePaymentSetting/index.jsx | 10 +- screeens/StreamerSpace/index.jsx | 247 ++++++-- yarn.lock | 17 +- 20 files changed, 1321 insertions(+), 452 deletions(-) create mode 100644 assets/images/newM.png create mode 100644 screeens/Messages/MessageDetail/components/AutoAnswerBtn/index.jsx create mode 100644 screeens/Messages/MessageDetail/components/OwnBubble/index.jsx diff --git a/.env b/.env index cd88997..7feef93 100644 --- a/.env +++ b/.env @@ -1,4 +1,5 @@ EXPO_PUBLIC_API_URL=https://api.tiefen.space EXPO_PUBLIC_RSA_KEY=-----BEGIN PUBLIC KEY-----MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMXPIjKV6CMi5O9tIXJWNIfnqXjqOZ1KmRByRAP073DU+gzMLygzEsrztJzbz/K/Julkz6XhheZ8vdz+boAl1HsCAwEAAQ==-----END PUBLIC KEY----- EXPO_PUBLIC_WEB_URL=https://tiefen.space -EXPO_PUBLIC_WEBSOCKET_URL=wss://ws.tiefen.space \ No newline at end of file +EXPO_PUBLIC_WEBSOCKET_URL=wss://ws.tiefen.space +EXPO_PUBLIC_WEB_ASSETS_URL=https://levianderwinv01.tiefen.space/web_app_public \ No newline at end of file diff --git a/assets/images/newM.png b/assets/images/newM.png new file mode 100644 index 0000000000000000000000000000000000000000..3b8cc6b96ba5bf8e59a19bd98f5e1b72ff5cee09 GIT binary patch literal 102156 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%0DRNL#MjSG&i4X}sjQu| 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 { + const tailwind = useTailwind(); + return ( + + + + { + e.stopPropagation(); + const newSuperSinglesContr = [...superSinglesContr]; + newSuperSinglesContr[index].enable = + !superSingleCheckeds.includes(index); + // newSuperSinglesContr[index].price = "0"; + // newSuperSinglesContr[index].wechatFree = false; + setSuperSinglesContr(newSuperSinglesContr); + if (superSingleCheckeds.includes(index)) { + setSuperSingleCheckeds(() => { + const newSuperSingleCheckeds = [...superSingleCheckeds]; + newSuperSingleCheckeds.splice( + newSuperSingleCheckeds.indexOf(index), + 1 + ); + return newSuperSingleCheckeds; + }); + } else { + setSuperSingleCheckeds(superSingleCheckeds.concat(index)); + } + }} + // checkedIcon="dot-circle-o" + // uncheckedIcon="circle-o" + iconType="ionicon" + checkedIcon="checkmark-circle" + uncheckedIcon="ellipse-outline" + checkedColor="#FF669E" + containerStyle={tailwind("p-0 m-0 bg-transparent")} + size={24} + > + {superSingle.text} + + + + ¥ + { + const newSuperSinglesContr = [...superSinglesContr]; + newSuperSinglesContr[index].price = value; + setSuperSinglesContr(newSuperSinglesContr); + }} + style={{ + ...tailwind("text-2xl text-white"), + // maxWidth: 200, + minWidth: 150, + }} + /> + + + | + { + const newSuperSinglesContr = [...superSinglesContr]; + newSuperSinglesContr[index].wechatFree = + !newSuperSinglesContr[index].wechatFree; + setSuperSinglesContr(newSuperSinglesContr); + }} + iconType="ionicon" + checkedIcon="checkmark-circle" + uncheckedIcon="ellipse-outline" + checkedColor="#FF669E" + containerStyle={tailwind("p-0 m-0 bg-transparent")} + size={20} + > + 赠送微信 + + + + + ); +}; + export default function CreateSpace({ navigation, route }) { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); - + const spacePriceRef = useRef(null); + const ironFanPriceRef = useRef(null); const [isSubmitting, setIsSubmitting] = useState(false); - + const [superSingleCheckeds, setSuperSingleCheckeds] = useState([]); + const [openSuper, setOpenSuper] = useState(true); + const [superSinglesContr, setSuperSinglesContr] = useState([ + { enable: false, price: "0", wechatFree: false, key: 0 }, + { enable: false, price: "0", wechatFree: false, key: 4 }, + { enable: false, price: "0", wechatFree: false, key: 3 }, + { enable: false, price: "0", wechatFree: false, key: 2 }, + { enable: false, price: "0", wechatFree: false, key: 1 }, + ]); //空间介绍 const [spaceIntro, setSpaceIntro] = useState(); @@ -42,8 +164,33 @@ export default function CreateSpace({ navigation, route }) { //是否开通超粉送微信 const [unlockWechat, setUnlockWechat] = useState(false); + const [spacePriceAble, setSpacePriceAble] = useState(false); + const listItemWithCheckboxMemo = useMemo(() => { + return superSingles.map((item, index) => ( + + + + )); + }, [superSingleCheckeds, superSinglesContr]); const handleSubmit = async () => { - if (!spaceIntro || !spacePrice || !ironFanPrice) { + const superSingle = [...superSinglesContr]; + const openSuperEveryFalse = Object.values(superSingle).every( + (it) => !it.enable + ); + if ( + !spaceIntro || + !spacePrice || + !ironFanPrice || + (openSuper && openSuperEveryFalse) + ) { Toast.show({ type: "error", text1: "请完善内容后提交", @@ -51,16 +198,8 @@ export default function CreateSpace({ navigation, route }) { }); return; } - if (isSuperFanOn && !superFanPrice) { - Toast.show({ - type: "error", - text1: "请填写超粉价格", - topOffset: 60, - }); - return; - } const _spacePrice = parseInt(spacePrice * 100, 10); - if (isNaN(_spacePrice) || _spacePrice < 0) { + if (isNaN(_spacePrice) || _spacePrice < 0 || _spacePrice > 388800) { Toast.show({ type: "error", text1: "请输入有效的解锁空间价格", @@ -77,32 +216,60 @@ export default function CreateSpace({ navigation, route }) { }); return; } - const _superFanPrice = parseInt(superFanPrice * 100, 10); - if ( - isSuperFanOn && - (isNaN(_superFanPrice) || _superFanPrice < 100 || _superFanPrice > 388800) - ) { - Toast.show({ - type: "error", - text1: "请输入有效的超粉价格", - topOffset: 60, + let isPrice = false; + if (openSuper) { + Object.values(superSingle).forEach((it) => { + if (it.enable) { + const superFanPrice = it.price; + if (!superFanPrice) { + Toast.show({ + type: "error", + text1: "请填写超粉价格", + topOffset: 60, + }); + isPrice = true; + return; + } else { + const _superFanPrice = parseInt(superFanPrice * 100, 10); + if ( + openSuper && + (isNaN(_superFanPrice) || + _superFanPrice < 100 || + _superFanPrice > 388800) + ) { + isPrice = true; + Toast.show({ + type: "error", + text1: "请输入有效的超粉价格", + topOffset: 60, + }); + return; + } + if (openSuper && _superFanPrice <= _ironFanPrice) { + isPrice = true; + Toast.show({ + type: "error", + text1: "请输入大于铁粉价格的超粉价格", + topOffset: 60, + }); + return; + } + } + } }); - return; - } - if (isSuperFanOn && _superFanPrice <= _ironFanPrice) { - Toast.show({ - type: "error", - text1: "请输入大于铁粉价格的超粉价格", - topOffset: 60, - }); - return; } + if (isPrice) return; if (isSubmitting) return; setIsSubmitting(true); const apiUrl = process.env.EXPO_PUBLIC_API_URL; - + const superfan_price_list = superSingle.map((it, index) => ({ + period: index, + enable: it.enable ? 1 : 0, + price: parseInt(it.price * 100, 10), + is_superfanship_give_wechat: it.wechatFree ? 1 : 0, + })); try { const base = await baseRequest(); const body = { @@ -110,9 +277,10 @@ export default function CreateSpace({ navigation, route }) { admission_price: parseInt(spacePrice * 100, 10), ironfanship_price: parseInt(ironFanPrice * 100, 10), is_superfanship_enabled: isSuperFanOn ? 1 : 0, - superfanship_price: parseInt(superFanPrice * 100, 10), - superfanship_valid_period: superFanExpiration, - is_superfanship_give_wechat: unlockWechat ? 1 : 0, + // superfanship_price: parseInt(superFanPrice * 100, 10), + // superfanship_valid_period: superFanExpiration, + // is_superfanship_give_wechat: unlockWechat ? 1 : 0, + superfan_price_list, ...base, }; const signature = await generateSignature(body); @@ -172,217 +340,123 @@ export default function CreateSpace({ navigation, route }) { "h-32 bg-[#FFFFFF1A] text-white rounded-2xl mt-2 p-2" )} /> - - + - *解锁空间价格 - - - ¥0~3888,仅支持整数 - - - setSpacePrice(value)} - keyboardType="numeric" - placeholder="解锁后可查看空间内免费动态" - placeholderTextColor="#FFFFFF80" - style={tailwind("text-white")} - underlineColorAndroid="transparent" - textAlign="top" - /> - - - - *铁粉价格 - - - ¥1~3888,仅支持整数 - - - setIronFanPrice(value)} - keyboardType="numeric" - placeholder="解锁后可查看空间内铁粉专享动态" - placeholderTextColor="#FFFFFF80" - style={tailwind("text-white")} - underlineColorAndroid="transparent" - textAlign="top" - /> - - - - *启用超粉功能 - - setIsSuperFanOn(value)} - thumbColor="#ffffff" - trackColor={{ true: "#FF669E", false: "#FFFFFF1A" }} - style={tailwind("mx-1")} - /> - - - {isSuperFanOn && ( - - - - 超粉价格 - - - ¥1~3888,仅支持整数 - + + 解锁空间价格 + * - setSuperFanPrice(value)} - keyboardType="numeric" - placeholder="最高身份,可查看空间所有动态" - placeholderTextColor="#FFFFFF80" - style={tailwind("text-white")} - underlineColorAndroid="transparent" - textAlign="top" - /> - - - 超粉单次开通有效期 + + (成为空间成员,可查看免费帖) - - - setSuperFanExpiration(0)} - iconType="material-community" - checkedIcon="checkbox-marked" - uncheckedIcon="checkbox-blank-outline" - checkedColor="#FF669E" - containerStyle={tailwind("p-0 m-0 bg-transparent")} - size={18} - /> - setSuperFanExpiration(0)} - style={tailwind("text-base font-medium text-white")} - > - 永久 - - - - setSuperFanExpiration(4)} - iconType="material-community" - checkedIcon="checkbox-marked" - uncheckedIcon="checkbox-blank-outline" - checkedColor="#FF669E" - containerStyle={tailwind("p-0 m-0 bg-transparent")} - size={18} - /> - setSuperFanExpiration(4)} - style={tailwind("text-base font-medium text-white")} - > - 年度 - - - - setSuperFanExpiration(3)} - iconType="material-community" - checkedIcon="checkbox-marked" - uncheckedIcon="checkbox-blank-outline" - checkedColor="#FF669E" - containerStyle={tailwind("p-0 m-0 bg-transparent")} - size={18} - /> - setSuperFanExpiration(3)} - style={tailwind("text-base font-medium text-white")} - > - 半年 - - - - setSuperFanExpiration(2)} - iconType="material-community" - checkedIcon="checkbox-marked" - uncheckedIcon="checkbox-blank-outline" - checkedColor="#FF669E" - containerStyle={tailwind("p-0 m-0 bg-transparent")} - size={18} - /> - setSuperFanExpiration(2)} - style={tailwind("text-base font-medium text-white")} - > - 季度 - - - - setSuperFanExpiration(1)} - iconType="material-community" - checkedIcon="checkbox-marked" - uncheckedIcon="checkbox-blank-outline" - checkedColor="#FF669E" - containerStyle={tailwind("p-0 m-0 bg-transparent")} - size={18} - /> - setSuperFanExpiration(1)} - style={tailwind("text-base font-medium text-white")} - > - 月度 - - - - - - - 开通超粉赠送微信 - - setUnlockWechat(value)} - thumbColor="#ffffff" - trackColor={{ true: "#FF669E", false: "#FFFFFF1A" }} - style={tailwind("mx-1")} + + { + spacePriceRef.current && spacePriceRef.current.focus(); + }} + style={tailwind( + "mt-2 px-4 py-3 h-12 rounded-lg bg-[#FFFFFF1A] flex-row justify-between items-center" + )} + > + + ¥ + - + + + 点击编辑 + + + + + + + + 铁粉价格 + * + + + (累计消费达成后解锁铁粉权益) + + + { + ironFanPriceRef.current && ironFanPriceRef.current.focus(); + }} + style={tailwind( + "mt-2 px-4 py-3 h-12 rounded-lg bg-[#FFFFFF1A] flex-row justify-between items-center" + )} + > + + ¥ + + + + + 点击编辑 + + + + + + + 超粉功能 + + + 是否启用 + + setOpenSuper(value)} + thumbColor="#ffffff" + trackColor={{ true: "#FF669E", false: "#FFFFFF1A" }} + /> + + + + {openSuper && ( + + + + 超粉单次开通类型 + * + + + (付费后解锁对应期限超粉权益) + + + {listItemWithCheckboxMemo} )} + + 为了更好保障你的合法权益,请阅读和同意 + { + setPopVisible({ + visible: true, + data: { + title: "用户协议", + uri: `${process.env.EXPO_PUBLIC_WEB_URL}/doc/useragreement`, + }, + }); + }} + style={tailwind("text-[#FF669E] text-base")} + > + 《用户协议》 + + 、 + { + setPopVisible({ + visible: true, + data: { + title: "隐私政策", + uri: `${process.env.EXPO_PUBLIC_WEB_URL}/doc/privatypolicy`, + }, + }); + }} + style={tailwind("text-[#FF669E] text-base")} + > + 《隐私政策》 + + + } + cancel={() => { + setIsModalVisible(false); + }} + confirm={() => { + setIsModalVisible(false); + toggleCheckbox(); + handleSubmit(); + }} + /> + {/* 协议通知弹窗 */} + {popVisible.visible && ( + + setPopVisible({ + visible: false, + data: { + title: "", + uri: "", + }, + }) + } + animationInTiming={500} // 打开动画时长 + animationOutTiming={1000} // 关闭动画时长 + animationIn="bounceInUp" // 打开动画类型 + animationOut="bounceInDown" // 关闭动画类型 + // scrollHorizontal={true} + style={{ + height: 120, + paddingBottom: 0, + borderTopLeftRadius: 15, + borderTopRightRadius: 15, + margin: 0, + justifyContent: "flex-end", + }} + > + + + setPopVisible({ + visible: false, + data: { + title: "", + uri: "", + }, + }) + } + /> + + {popVisible.data.title} + + + + { + // const msg = JSON.parse(event.nativeEvent.data); + // if (msg.type === "SAVE_IMAGE") { + // saveImage(msg.data); + // } else if (msg.type === "COPY_URL") { + // copy(msg.data); + // } else if (msg.type === "NAVIGATE") { + // navigation.navigate(msg.data.page, { ...msg.data.params }); + // } else if (msg.type === "OPEN_BROWSER") { + // openBrowser(msg.data); + // } + // }} + injectedJavaScript={setCookieScript} + originWhitelist={[ + "https://*", + "http://*", + "alipays://*", + "alipay://*", + "weixin://*", + ]} + /> + + + )} ); } diff --git a/screeens/Messages/MessageDetail/components/AutoAnswerBtn/index.jsx b/screeens/Messages/MessageDetail/components/AutoAnswerBtn/index.jsx new file mode 100644 index 0000000..a28c826 --- /dev/null +++ b/screeens/Messages/MessageDetail/components/AutoAnswerBtn/index.jsx @@ -0,0 +1,34 @@ +import { View, Text } from "react-native"; +import React, { useState, useCallback, useEffect } from "react"; +import { + GestureHandlerRootView, + TouchableOpacity, +} from "react-native-gesture-handler"; +export default function AutoAnswerBtn({ onSend, text }) { + return ( + { + // console.log("log", item); + onSend([{ text }]); + }} + style={{ + // ...tailwind("border rounded text-center px-4 py-1"), + backgroundColor: "#3333331A", + // borderWidth: 1, + // borderColor: "black", + borderRadius: 10, + padding: 6, + }} + > + + {text} + + + ); +} diff --git a/screeens/Messages/MessageDetail/components/OwnBubble/index.jsx b/screeens/Messages/MessageDetail/components/OwnBubble/index.jsx new file mode 100644 index 0000000..adab009 --- /dev/null +++ b/screeens/Messages/MessageDetail/components/OwnBubble/index.jsx @@ -0,0 +1,109 @@ +import { View, Text } from "react-native"; +import React, { useState, useCallback, useEffect } from "react"; +import { Bubble } from "react-native-gifted-chat"; +import { useTailwind } from "tailwind-rn"; +import "dayjs/locale/zh-cn"; +import { + GestureHandlerRootView, + TouchableOpacity, +} from "react-native-gesture-handler"; +import AutoAnswerBtn from "../AutoAnswerBtn"; +export default function OwnBubble({ + navigation, + route, + onSend, + currentMessage, + ...props +}) { + const tailwind = useTailwind(); + const [currentHeight, setCurrentHeight] = useState(null); + return ( + { + const { height } = event.nativeEvent.layout; + // 如果内容高度超过最小高度,动态更新气泡高度(可选) + // console.log("气泡高度:", height, currentMessage._id); + // 设置气泡的高度 + // props.onLayout({ height }); + setCurrentHeight((prev) => height); + // currentOwnHeight = height; + // 动态设置气泡的高度 + }} + > + {/* {currentMessage.text} */} + + + ) : ( + currentMessage.text + ), + }} + /> + ); +} +const AutoMessage = ({ + message = "", + mType, + height, + currentMessage, + + ...props +}) => { + // console.log("data", height); + const tailwind = useTailwind(); + const test = message.split("|"); + const btns = test[1].split(","); + return ( + + + {test[0]} + + + {btns.map((item, index) => { + return ; + })} + + + ); + + // data.m_type===1?it?.text.split("|")it?.text +}; diff --git a/screeens/Messages/MessageDetail/index.jsx b/screeens/Messages/MessageDetail/index.jsx index 1f1179a..b93bd99 100644 --- a/screeens/Messages/MessageDetail/index.jsx +++ b/screeens/Messages/MessageDetail/index.jsx @@ -5,7 +5,6 @@ import { Send, InputToolbar, Composer, - Bubble, Day, LoadEarlier, } from "react-native-gifted-chat"; @@ -17,6 +16,8 @@ import { Image } from "expo-image"; import { get } from "../../../utils/storeInfo"; import Toast from "react-native-toast-message"; import requireAPI from "../../../utils/requireAPI"; +import { GestureHandlerRootView } from "react-native-gesture-handler"; +import OwnBubble from "./components/OwnBubble"; const blurhash = "LcKUTa%gOYWBYRt6xuoJo~s8V@fk"; /* @@ -25,13 +26,12 @@ params格式: mid: item.mid, } */ - export default function MessageDetail({ navigation, route }) { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); const params = route.params; const [messages, setMessages] = useState([]); - + const [currentHeight, setCurrentHeight] = useState(null); //获取本地自身数据 const [selfData, setSelfData] = useState({}); useEffect(() => { @@ -68,12 +68,12 @@ export default function MessageDetail({ navigation, route }) { return; } navigation.setOptions({ - title: detailData.data.streamer_ext.name, + title: _data.data.streamer_ext.name, }); await sendAutoMessages( - detailData.data.streamer_ext?.name, - detailData.data.streamer_ext?.avatar?.images[0]?.urls[0], - detailData.data.streamer_ext?.auto_response_message + _data.data.streamer_ext?.name, + _data.data.streamer_ext?.avatar?.images[0]?.urls[0], + _data.data.streamer_ext?.auto_response_message ); } catch (error) { console.error(error); @@ -95,6 +95,7 @@ export default function MessageDetail({ navigation, route }) { _id: 1, text: content, createdAt: new Date(), + user: { _id: 1, name: name, @@ -205,6 +206,7 @@ export default function MessageDetail({ navigation, route }) { _id: item.id, createdAt: new Date(item.ct * 1000).toISOString(), text: item.message, + mType: item.m_type, user: { _id: account?.mid, name: account?.name, @@ -216,6 +218,7 @@ export default function MessageDetail({ navigation, route }) { _id: item.id, createdAt: new Date(item.ct * 1000).toISOString(), text: item.message, + mType: item.m_type, user: { _id: 0, name: "客服", @@ -257,6 +260,7 @@ export default function MessageDetail({ navigation, route }) { _id: item.id, createdAt: new Date(item.ct * 1000).toISOString(), text: item.message, + mType: item.m_type, user: { _id: account.mid, name: account.name, @@ -268,6 +272,7 @@ export default function MessageDetail({ navigation, route }) { _id: item.id, createdAt: new Date(item.ct * 1000).toISOString(), text: item.message, + mType: item.m_type, user: { _id: 1, name: "客服", @@ -280,6 +285,11 @@ export default function MessageDetail({ navigation, route }) { if (prev[0]?._id === temMessages[0]?._id) { return prev; } else { + // console.log("temMessages", temMessages, "prev", prev); + const newMessages = [...temMessages, ...prev].filter( + (item, index, self) => + index === self.findIndex((t) => t.id === item.id) + ); return [...temMessages, ...prev]; } }); @@ -450,17 +460,12 @@ export default function MessageDetail({ navigation, route }) { }, []); //气泡样式 - const renderBubble = useCallback((props) => { - return ( - - ); - }, []); + const renderBubble = useCallback( + (props) => { + return ; + }, + [currentHeight, sessionId] + ); //加载更早信息样式 const renderLoadEarlier = useCallback( @@ -485,37 +490,43 @@ export default function MessageDetail({ navigation, route }) { ...tailwind("flex-1 bg-[#13121F]"), }} > - - loadEarlierHistory()} - showUserAvatar - showAvatarForEveryMessage - renderAvatarOnTop - messagesContainerStyle={tailwind("bg-[#13121F] pb-4")} - renderAvatar={renderAvatar} - renderDay={renderDay} - renderInputToolbar={renderInputToolbar} - renderBubble={renderBubble} - loadEarlier - renderLoadEarlier={renderLoadEarlier} - renderTime={renderTime} - messages={messages} - onSend={(messages) => onSend(messages)} - user={{ - _id: selfData?.mid, - name: selfData?.name, - avatar: selfData?.avatar?.images[0]?.urls[0], - }} - /> - + + + loadEarlierHistory()} + showUserAvatar + showAvatarForEveryMessage + renderAvatarOnTop + messagesContainerStyle={tailwind("bg-[#13121F] pb-4")} + renderAvatar={renderAvatar} + renderDay={renderDay} + renderInputToolbar={renderInputToolbar} + renderBubble={renderBubble} + // renderMessageText={renderMessageText} + loadEarlier + renderLoadEarlier={renderLoadEarlier} + renderTime={renderTime} + messages={messages} + onSend={(messages) => onSend(messages)} + user={{ + _id: selfData?.mid, + name: selfData?.name, + avatar: selfData?.avatar?.images[0]?.urls[0], + }} + /> + + ); } diff --git a/screeens/My/index.jsx b/screeens/My/index.jsx index fbbeb9e..35b1cf5 100644 --- a/screeens/My/index.jsx +++ b/screeens/My/index.jsx @@ -635,9 +635,6 @@ export default function My({ navigation }) { remainCompleteInformation(() => navigation.navigate("Refund", { screen: "RefundList", - params: { - b_mid: data.mid, - }, }) ) } diff --git a/screeens/NoticeDetail/components/MessageList/index.jsx b/screeens/NoticeDetail/components/MessageList/index.jsx index 05e1d89..353b7ff 100644 --- a/screeens/NoticeDetail/components/MessageList/index.jsx +++ b/screeens/NoticeDetail/components/MessageList/index.jsx @@ -234,13 +234,16 @@ const MessageList = ({ navigation, noticeCount, refInstance }) => { - + {title} - + {subtitle} @@ -369,7 +372,14 @@ const MessageList = ({ navigation, noticeCount, refInstance }) => { 官方 - + {data?.recent_contact_cs_msg || "暂无新消息"} diff --git a/screeens/Refund/RefundList/PendingReview/index.jsx b/screeens/Refund/RefundList/PendingReview/index.jsx index cbe9fe3..92544f4 100644 --- a/screeens/Refund/RefundList/PendingReview/index.jsx +++ b/screeens/Refund/RefundList/PendingReview/index.jsx @@ -9,13 +9,12 @@ import React, { useState } from "react"; import { useTailwind } from "tailwind-rn"; import Toast from "react-native-toast-message"; import Empty from "../../../../components/Empty"; -import { ListItem } from "@rneui/themed"; +import { ListItem, Button } from "@rneui/themed"; import { Image } from "expo-image"; import baseRequest from "../../../../utils/baseRequest"; import { generateSignature } from "../../../../utils/crypto"; import formatTimestamp from "../../../../utils/formatTimestamp"; - -export default function PendingReview({ zid, navigation }) { +export default function PendingReview({ navigation }) { const blurhash = "LcKUTa%gOYWBYRt6xuoJo~s8V@fk"; const tailwind = useTailwind(); @@ -23,12 +22,12 @@ export default function PendingReview({ zid, navigation }) { const [more, setMore] = useState(1); const [data, setData] = useState({ list: [], total: 0 }); const getData = async () => { - if (zid === undefined || !more) return; const apiUrl = process.env.EXPO_PUBLIC_API_URL; + const b_mid = baseRequest.b_mid; try { const base = await baseRequest(); const body = { - b_mid: parseInt(zid), + b_mid: parseInt(b_mid), audit_type: 1, offset: offset, limit: 20, @@ -128,17 +127,18 @@ export default function PendingReview({ zid, navigation }) { - - + diff --git a/screeens/Refund/RefundList/Reviewed/index.jsx b/screeens/Refund/RefundList/Reviewed/index.jsx index 17f0c36..6eafe2c 100644 --- a/screeens/Refund/RefundList/Reviewed/index.jsx +++ b/screeens/Refund/RefundList/Reviewed/index.jsx @@ -4,31 +4,32 @@ import { FlatList, Image as NativeImage, TouchableOpacity, + Dimensions, } from "react-native"; import React, { useState } from "react"; import { useTailwind } from "tailwind-rn"; import Toast from "react-native-toast-message"; import Empty from "../../../../components/Empty"; -import { ListItem } from "@rneui/themed"; +import { ListItem, Icon } from "@rneui/themed"; import { Image } from "expo-image"; import baseRequest from "../../../../utils/baseRequest"; import { generateSignature } from "../../../../utils/crypto"; import formatTimestamp from "../../../../utils/formatTimestamp"; -export default function Reviewed({ navigation, zid }) { +export default function Reviewed({ navigation }) { const blurhash = "LcKUTa%gOYWBYRt6xuoJo~s8V@fk"; - + const screenWidth = Dimensions.get("window").width; const tailwind = useTailwind(); const [offset, setOffset] = useState(0); const [more, setMore] = useState(1); const [data, setData] = useState({ list: [], total: 0 }); const getData = async () => { - if (zid === undefined || !more) return; const apiUrl = process.env.EXPO_PUBLIC_API_URL; + const b_mid = baseRequest.b_mid; try { const base = await baseRequest(); const body = { - b_mid: parseInt(zid), + b_mid: parseInt(b_mid), audit_type: 2, offset: offset, limit: 20, @@ -68,15 +69,24 @@ export default function Reviewed({ navigation, zid }) { //单个成员组件 const renderItem = ({ item }) => { return ( - + navigation.navigate("RefundDetail", { id: item.audit_id }) } style={tailwind("flex-1")} > - - + + - - + + {item.account.name} + {screenWidth}阿萨德嘎是法国业务 @@ -117,14 +143,21 @@ export default function Reviewed({ navigation, zid }) { + - 申请时间: {formatTimestamp(item?.refund_t)} diff --git a/screeens/Refund/RefundList/index.jsx b/screeens/Refund/RefundList/index.jsx index ac21259..540253f 100644 --- a/screeens/Refund/RefundList/index.jsx +++ b/screeens/Refund/RefundList/index.jsx @@ -12,7 +12,7 @@ import { TabView, SceneMap, TabBar } from "react-native-tab-view"; import PendingReview from "./PendingReview"; import Reviewed from "./Reviewed"; -export default function RefundList({ navigation, route }) { +export default function RefundList({ navigation }) { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); //tab组件相关 @@ -25,12 +25,10 @@ export default function RefundList({ navigation, route }) { const renderScene = useCallback( SceneMap({ - doing: () => ( - - ), - done: () => , + doing: () => , + done: () => , }), - [route] + [] ); const renderIndicator = useCallback((props) => { diff --git a/screeens/Search/HostList/index.jsx b/screeens/Search/HostList/index.jsx index deaab56..bf1503a 100644 --- a/screeens/Search/HostList/index.jsx +++ b/screeens/Search/HostList/index.jsx @@ -107,7 +107,7 @@ export default function HostList() { type="ionicon" name="chevron-forward" size={14} - color="white" + color="#FFFFFF80" onPress={() => navigation.goBack()} /> diff --git a/screeens/Space/SpaceList/index.jsx b/screeens/Space/SpaceList/index.jsx index 03d7366..5efb389 100644 --- a/screeens/Space/SpaceList/index.jsx +++ b/screeens/Space/SpaceList/index.jsx @@ -1,5 +1,5 @@ import { View, Text, RefreshControl, TouchableOpacity } from "react-native"; -import React, { useState, useCallback } from "react"; +import React, { useState, useCallback, useEffect } from "react"; import { useTailwind } from "tailwind-rn"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import Toast from "react-native-toast-message"; @@ -18,23 +18,32 @@ export default function SpaceList() { const navigation = useNavigation(); const [data, setData] = useState([]); - - const getData = async () => { + const [more, setMore] = useState(true); + const [offset, setOffset] = useState(0); + const [currentUserId, setCurrentUserId] = useState(null); + const getData = async (type, offset) => { + if (!more && type !== "top") return; + //防止重复加载 + if (data.length === 0 && type === "bottom") return; + if (type === "bottom" && offset === 0) return; const apiUrl = process.env.EXPO_PUBLIC_API_URL; - + const userId = await baseRequest(); + setCurrentUserId(userId?.b_mid); try { const base = await baseRequest(); const signature = await generateSignature({ ...base, }); const _response = await fetch( - `${apiUrl}/api/zone/list_by_visitor_mid?signature=${signature}`, + `${apiUrl}/api/zone/list_by_visitor_mid_v2?signature=${signature}`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ + offset, + limit: 6, ...base, }), } @@ -48,13 +57,17 @@ export default function SpaceList() { }); return; } - //在末尾添加元素以展示查看更多卡片 - if (_data.data.list.length !== 0) { - const finalData = [..._data.data.list, { id: 999999, last: true }]; - setData(finalData); + + setOffset(_data.data.offset); + setMore(_data.data.more); + if (offset === 0) { + setData(_data.data.list); return; } - setData(_data.data.list); + //在末尾添加元素以展示查看更多卡片 + setData((prev) => { + return [...prev, ..._data.data.list]; + }); } catch (error) { console.error(error); } @@ -62,10 +75,15 @@ export default function SpaceList() { //每次focus都更新一次数据 useFocusEffect( useCallback(() => { - getData(); + (async () => { + const userId = await baseRequest(); + if (currentUserId !== userId?.b_mid) { + setCurrentUserId(userId?.b_mid); + getData("top", 0); + } + })(); }, []) ); - const renderItem = ({ item }) => ; //数据为空时的组件 @@ -109,7 +127,7 @@ export default function SpaceList() { const [refreshing, setRefreshing] = useState(false); const handleRefresh = async () => { setRefreshing(true); - await getData(); + await getData("top", 0); setRefreshing(false); }; @@ -123,12 +141,16 @@ export default function SpaceList() { > item.id} renderItem={renderItem} estimatedItemSize={166} initialNumToRender={12} numColumns={2} + onEndReached={() => { + getData("bottom", offset); + }} + drawDistance={10} refreshControl={ { + try { + const body = { + zid: data?.id, + }; + const _data = await requireAPI("POST", "/api/zone/exit_reenter", { + body, + }); + if (_data.ret === -1) { + Toast.show({ + type: "error", + text1: _data.msg, + topOffset: 60, + }); + return; + } + navigation.replace("StreamerSpace", { mid: route.params.mid }); + } catch (error) { + // console.error(error); + } + }; //点击查看微信按钮 const [isAddWechatModalVisible, setIsAddWechatModalVisible] = useState(false); @@ -345,7 +367,9 @@ export default function SpaceIntroduce({ navigation, route }) { > setIsWarnModalVisible(true) } @@ -353,18 +377,33 @@ export default function SpaceIntroduce({ navigation, route }) { "flex flex-row items-center justify-center h-12 rounded-full px-10 bg-[#FF669E]" )} > - {data?.admission_price !== 0 && ( - + {data?.exit_status === 1 ? ( + <> + + 已解锁 + + + + ) : ( + <> + {data?.admission_price !== 0 && ( + + )} + + {data?.admission_price === 0 + ? "免费加入" + : `${data?.admission_price / 100}元立即加入`} + + + )} - - {data?.admission_price === 0 - ? "免费加入" - : `${data?.admission_price / 100}元立即加入`} - - )} diff --git a/screeens/SpaceSetting/SpacePaymentSetting/index.jsx b/screeens/SpaceSetting/SpacePaymentSetting/index.jsx index 55058a3..930a2f9 100644 --- a/screeens/SpaceSetting/SpacePaymentSetting/index.jsx +++ b/screeens/SpaceSetting/SpacePaymentSetting/index.jsx @@ -102,7 +102,7 @@ const ListItemWithCheckbox = ({ setSuperSinglesContr(newSuperSinglesContr); }} style={{ - ...tailwind("text-2xl text-white"), + ...tailwind("text-xl text-white"), // maxWidth: 200, minWidth: 150, }} @@ -219,7 +219,7 @@ export default function SpacePaymentSetting({ navigation, route }) { useEffect(() => { if (!spacePriceInfo) return; const { admission_price, ironfanship_price } = spacePriceInfo; - if (admission_price > 0) { + if (admission_price > -1) { setSpacePrice((admission_price / 100).toString()); } if (ironfanship_price > 0) { @@ -404,7 +404,7 @@ export default function SpacePaymentSetting({ navigation, route }) { placeholderTextColor="#FFFFFF80" underlineColorAndroid="transparent" style={{ - ...tailwind("text-white"), + ...tailwind("text-xl text-white"), // maxWidth: 250, minWidth: 150, }} @@ -440,11 +440,11 @@ export default function SpacePaymentSetting({ navigation, route }) { value={ironFanPrice} onChangeText={setIronFanPrice} keyboardType="numeric" - placeholder="0~3888,仅支持整数" + placeholder="1~3888,仅支持整数" placeholderTextColor="#FFFFFF80" underlineColorAndroid="transparent" style={{ - ...tailwind("text-white"), + ...tailwind("text-xl text-white"), // maxWidth: 250, minWidth: 150, }} diff --git a/screeens/StreamerSpace/index.jsx b/screeens/StreamerSpace/index.jsx index 0a28752..c03f92e 100644 --- a/screeens/StreamerSpace/index.jsx +++ b/screeens/StreamerSpace/index.jsx @@ -6,7 +6,7 @@ import { useWindowDimensions, Animated, Easing, - Modal, + Modal as RNModal, } from "react-native"; import React, { useState, useEffect, useCallback, useMemo } from "react"; import { useTailwind } from "tailwind-rn"; @@ -29,8 +29,8 @@ import { LinearProgress, Button } from "@rneui/themed"; import { LinearGradient } from "expo-linear-gradient"; import { usePreventScreenCapture } from "expo-screen-capture"; import { Svg, Path } from "react-native-svg"; -import MyModal from "../../components/MyModal"; - +import Modal from "react-native-modal"; +import requireAPI from "../../utils/requireAPI"; export default function StreamerSpace({ navigation, route }) { usePreventScreenCapture(); const blurhash = "LcKUTa%gOYWBYRt6xuoJo~s8V@fk"; @@ -44,6 +44,10 @@ export default function StreamerSpace({ navigation, route }) { //退款中Modal是否展示 const [isRefundingModalVisible, setIsRefundingModalVisible] = useState(false); + //消息通知Modal是否展示 + const [popVisible, setPopVisible] = useState(false); + // 通知弹框数据 + const [noticesMaskInformation, setNoticesMaskInformation] = useState(false); //获取空间数据并将该空间标为已读 const [data, setData] = useState({}); @@ -122,6 +126,7 @@ export default function StreamerSpace({ navigation, route }) { useEffect(() => { getData(); + getNoticesMaskInformation(); }, []); //设置header右侧按钮功能 @@ -138,7 +143,6 @@ export default function StreamerSpace({ navigation, route }) { ), }); }, [data]); - //点击查看微信按钮 const [isAddWechatModalVisible, setIsAddWechatModalVisible] = useState(false); @@ -168,7 +172,44 @@ export default function StreamerSpace({ navigation, route }) { }), [data] ); + const getNoticesMaskInformation = async () => { + const userInfo = await baseRequest(); + if (userInfo?.b_mid != params_mid) return; + try { + const data = await requireAPI("POST", "/api/zone/pop_up", { + body: { + mid: params_mid, + }, + }); + if (data.ret === -1) { + Toast.show({ + type: "error", + text1: data.msg, + topOffset: 60, + }); + return; + } + setPopVisible(!!data.data.enable); + setNoticesMaskInformation(data.data); + } catch (error) { + // console.error(error); + } + }; + // 监听路有变化 + useEffect(() => { + const unsubscribe = navigation.addListener("state", (e) => { + const state = e.data.state; + const currentRoute = state.routes[state.index]; + if ( + // action?.type === "GO_BACK" && // 返回动作 + currentRoute?.name === "StreamerSpace" // 当前路由为PageA + ) { + getNoticesMaskInformation(); + } + }); + return unsubscribe; + }, [navigation]); const renderIndicator = useCallback((props) => { const { position, navigationState, getTabWidth } = props; const inputRange = [0, 1]; @@ -259,7 +300,7 @@ export default function StreamerSpace({ navigation, route }) { ); const BecomeIronFanModal = useCallback( () => ( - - + ), [isIronFanModalVisible] ); @@ -608,34 +649,6 @@ export default function StreamerSpace({ navigation, route }) { 查看微信 - {data?.is_superfanship_enabled === 1 && ( - setIndex(2) - : () => - navigation.navigate("WebWithoutHeader", { - uri: - process.env.EXPO_PUBLIC_WEB_URL + - "/zone/pay/" + - data?.id + - "/h5_zone_superfanship/0", - }) - } - style={tailwind("flex flex-col items-center")} - > - - - {data?.is_superfanship_unlocked === 1 - ? "尊贵超粉" - : "成为超粉"} - - - )} setIsIronFanModalVisible(true)} style={tailwind("flex flex-col items-center")} @@ -664,6 +677,34 @@ export default function StreamerSpace({ navigation, route }) { + {data?.is_superfanship_enabled === 1 && ( + setIndex(2) + : () => + navigation.navigate("WebWithoutHeader", { + uri: + process.env.EXPO_PUBLIC_WEB_URL + + "/zone/pay/" + + data?.id + + "/h5_zone_superfanship/0", + }) + } + style={tailwind("flex flex-col items-center")} + > + + + {data?.is_superfanship_unlocked === 1 + ? "尊贵超粉" + : "成为超粉"} + + + )} )} {/* 点击成为铁粉Modal */} @@ -688,7 +729,7 @@ export default function StreamerSpace({ navigation, route }) { /> )} {/* 退款中禁止查看Modal */} - + {/* 信息通知弹窗 */} + {popVisible && ( + setPopVisible(false)} + onBackdropPress={() => setPopVisible(false)} + animationInTiming={500} // 打开动画时长 + animationOutTiming={1000} // 关闭动画时长 + animationIn="bounceInUp" // 打开动画类型 + animationOut="bounceInDown" // 关闭动画类型 + style={{ + height: 120, + paddingBottom: 0, + borderTopLeftRadius: 15, + borderTopRightRadius: 15, + margin: 0, + justifyContent: "flex-end", + }} + > + + + {/* */} + + + {noticesMaskInformation.content} + + + {noticesMaskInformation.action?.map((item, index) => { + return ( + 0 ? "flex" : "none", + }} + > + + + + {item.text} {item.count} + + + { + setPopVisible(false); + const linkAndParams = item.app_url + .split("/") + .filter((item) => item); + navigation.navigate(linkAndParams[0], { + screen: linkAndParams[1], + }); + }} + style={tailwind( + "flex-row items-center justify-center h-8 px-4 bg-[#FF669E] rounded-full" + )} + > + + 前往处理 + + + + ); + })} + + setPopVisible(false)} + style={{ + ...tailwind( + "flex items-center justify-center h-8 px-4 bg-[#FF669E] rounded-full" + ), + height: 46, + width: 221, + marginTop: 41, + }} + > + + 回到空间 + + + + + + )} ); diff --git a/yarn.lock b/yarn.lock index 56e65b1..b7e3aa8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6362,7 +6362,7 @@ prop-types@15.7.2: object-assign "^4.1.1" react-is "^16.8.1" -prop-types@15.8.1, prop-types@^15.5.10, prop-types@^15.7.2, prop-types@^15.7.x: +prop-types@15.8.1, prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.7.x: version "15.8.1" resolved "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -6482,6 +6482,13 @@ react-is@^17.0.1: resolved "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-native-animatable@1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/react-native-animatable/-/react-native-animatable-1.3.3.tgz#a13a4af8258e3bb14d0a9d839917e9bb9274ec8a" + integrity sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w== + dependencies: + prop-types "^15.7.2" + react-native-communications@2.2.1: version "2.2.1" resolved "https://registry.npmmirror.com/react-native-communications/-/react-native-communications-2.2.1.tgz" @@ -6541,6 +6548,14 @@ react-native-lightbox-v2@0.9.0: resolved "https://registry.npmmirror.com/react-native-lightbox-v2/-/react-native-lightbox-v2-0.9.0.tgz" integrity sha512-Fc5VFHFj2vokS+OegyTsANKb1CYoUlOtAv+EBH5wtpJn1b5cey6jVXH7136G5+8OC9JmKWSgKHc5thFwOoZTUg== +react-native-modal@^13.0.1: + version "13.0.1" + resolved "https://registry.npmjs.org/react-native-modal/-/react-native-modal-13.0.1.tgz#691f1e646abb96fa82c1788bf18a16d585da37cd" + integrity sha512-UB+mjmUtf+miaG/sDhOikRfBOv0gJdBU2ZE1HtFWp6UixW9jCk/bhGdHUgmZljbPpp0RaO/6YiMmQSSK3kkMaw== + dependencies: + prop-types "^15.6.2" + react-native-animatable "1.3.3" + react-native-pager-view@6.3.0: version "6.3.0" resolved "https://registry.npmmirror.com/react-native-pager-view/-/react-native-pager-view-6.3.0.tgz"