From 41f355c54020b8f81d86666d004ff544f2ee14d1 Mon Sep 17 00:00:00 2001 From: yezian Date: Wed, 24 Apr 2024 18:58:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E6=89=80=E6=9C=89Tab?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=EF=BC=9B=E5=B0=86=E6=89=80=E6=9C=89=E7=BC=BA?= =?UTF-8?q?=E7=9C=81=E5=9B=BE=E8=AE=BE=E7=BD=AE=E4=B8=BAnodata=EF=BC=9B?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A7=E7=BC=BA=E7=9C=81=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/icon_emptydata.png | Bin 4245 -> 0 bytes assets/images/icon_emptyinternet.png | Bin 4322 -> 0 bytes assets/images/icon_emptylocation.png | Bin 5187 -> 0 bytes assets/images/icon_emptymessage.png | Bin 4971 -> 0 bytes assets/images/icon_emptypost.png | Bin 5261 -> 0 bytes assets/images/icon_emptysearch.png | Bin 4771 -> 0 bytes components/Empty/index.jsx | 16 +- screeens/Login/index.jsx | 129 ++++++++------- screeens/My/index.jsx | 21 --- screeens/Posts/index.jsx | 170 ++++++++++---------- screeens/Relationship/index.jsx | 138 +++++++++------- screeens/Space/index.jsx | 150 +++++++++-------- screeens/SpaceSetting/SpaceMember/index.jsx | 4 +- screeens/Stream/index.jsx | 150 +++++++++-------- screeens/StreamerSpace/index.jsx | 4 +- screeens/WechatWaitingToAdd/index.jsx | 139 +++++++++------- 16 files changed, 486 insertions(+), 435 deletions(-) delete mode 100644 assets/images/icon_emptydata.png delete mode 100644 assets/images/icon_emptyinternet.png delete mode 100644 assets/images/icon_emptylocation.png delete mode 100644 assets/images/icon_emptymessage.png delete mode 100644 assets/images/icon_emptypost.png delete mode 100644 assets/images/icon_emptysearch.png diff --git a/assets/images/icon_emptydata.png b/assets/images/icon_emptydata.png deleted file mode 100644 index b9170dd8e229684849706194a9754e7931ecf8c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4245 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 QEdT%j07*qoM6N<$f_-zsLI3~& diff --git a/assets/images/icon_emptylocation.png b/assets/images/icon_emptylocation.png deleted file mode 100644 index ea842189c57f011fece964df53a2ac4a51e2aa67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5187 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 Y>wvqCaD~s|k_rN_ntB?gXxmr+17GTWp8x;= diff --git a/assets/images/icon_emptymessage.png b/assets/images/icon_emptymessage.png deleted file mode 100644 index 18ea70e0dc35e4704c20f58c2699a2cf339242af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4971 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 diff --git a/assets/images/icon_emptypost.png b/assets/images/icon_emptypost.png deleted file mode 100644 index f5f6e3e4f0b448dc616875692269787250139c8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5261 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 diff --git a/assets/images/icon_emptysearch.png b/assets/images/icon_emptysearch.png deleted file mode 100644 index 9acbeb28bddedba0002849e79c67aa37e2e9034b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4771 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 XUF^LNKR?}lodD$1m&)ae79sx!`>5%( diff --git a/components/Empty/index.jsx b/components/Empty/index.jsx index 264d160..2773e57 100644 --- a/components/Empty/index.jsx +++ b/components/Empty/index.jsx @@ -7,17 +7,17 @@ export default function Empty({ type }) { const source = (type) => { switch (type) { case "post": - return require("../../assets/images/icon_emptypost.png"); + return require("../../assets/icon/others/nodata.png"); case "friendship": - return require("../../assets/images/icon_emptypost.png"); + return require("../../assets/icon/others/nodata.png"); case "location": - return require("../../assets/images/icon_emptylocation.png"); + return require("../../assets/icon/others/nodata.png"); case "message": - return require("../../assets/images/icon_emptymessage.png"); + return require("../../assets/icon/others/nodata.png"); case "search": - return require("../../assets/images/icon_emptysearch.png"); + return require("../../assets/icon/others/nodata.png"); case "internet": - return require("../../assets/images/icon_emptyinternet.png"); + return require("../../assets/icon/others/nodata.png"); case "nodata": return require("../../assets/icon/others/nodata.png"); case "nospace": @@ -27,11 +27,11 @@ export default function Empty({ type }) { const text = (type) => { switch (type) { case "post": - return "还没有动态哦~快去邂逅女神吧!"; + return "还没有动态哦~快去与Ta邂逅吧!"; case "friendship": return "Ta都等急了!行动起来!"; case "location": - return "打开位置权限,邂逅同城女神吧~"; + return "打开位置权限,邂逅同城的Ta吧~"; case "message": return "犹豫就会败北!爱要勇敢说出来!"; case "search": diff --git a/screeens/Login/index.jsx b/screeens/Login/index.jsx index 79b5dcf..3e3f570 100644 --- a/screeens/Login/index.jsx +++ b/screeens/Login/index.jsx @@ -3,23 +3,81 @@ import { Keyboard, TouchableWithoutFeedback, Dimensions, + Animated, + useWindowDimensions, + Image as NativeImage, } from "react-native"; -import React, { useState, useEffect } from "react"; -import { Tab, TabView } from "@rneui/themed"; +import React, { useState, useCallback } from "react"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import { useTailwind } from "tailwind-rn"; import PasswordLogin from "./PasswordLogin"; import PhoneNumLogin from "./PhoneNumLogin"; +import { TabView, SceneMap, TabBar } from "react-native-tab-view"; export default function Login() { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); - const [index, setIndex] = useState(0); - //修复ios使用了tab组件闪退问题 - const [indicatorX, setIndicatorX] = useState(0); - const windowWidth = Dimensions.get("window").width; - const tabWidth = windowWidth / 2; + //tab组件相关 + const layout = useWindowDimensions(); + const [index, setIndex] = useState(0); + const [routes] = useState([ + { key: "phoneNumLogin", title: "验证码登录" }, + { key: "passwordLogin", title: "账号密码登陆" }, + ]); + + const renderScene = useCallback( + SceneMap({ + phoneNumLogin: () => , + passwordLogin: () => , + }), + [] + ); + + const renderIndicator = useCallback((props) => { + const { position, navigationState, getTabWidth } = props; + const inputRange = [0, 1]; + const translateX = position.interpolate({ + inputRange: inputRange, + outputRange: inputRange.map((x) => { + return x * getTabWidth(navigationState.index); + }), + }); + return ( + + + + ); + }, []); + + const renderTabBar = useCallback( + (props) => ( + + + + ), + [] + ); return ( Keyboard.dismiss()}> @@ -32,56 +90,15 @@ export default function Login() { ...tailwind("flex flex-1"), }} > - {/* tab栏 */} - { - Keyboard.dismiss(); - setIndex(e); - setIndicatorX(e * tabWidth); - }} - dense - indicatorStyle={{ - ...tailwind("bg-[#FF7DCB] h-1 w-20 ml-[3.2rem] rounded-full"), - transform: [{ translateX: indicatorX }], - }} - style={tailwind("mt-32")} - > - - 验证码登陆 - - - 账号密码登陆 - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - animationType="spring" - disableSwipe - > - - - - - - - + navigationState={{ index, routes }} + swipeEnabled={true} + renderScene={renderScene} + renderTabBar={renderTabBar} + onIndexChange={setIndex} + initialLayout={{ width: layout.width }} + style={tailwind("mt-32")} + /> ); diff --git a/screeens/My/index.jsx b/screeens/My/index.jsx index 776c652..7b79212 100644 --- a/screeens/My/index.jsx +++ b/screeens/My/index.jsx @@ -433,27 +433,6 @@ export default function My({ navigation }) { /> )} - {/* {data?.streamer_ext?.zones && ( - - navigation.navigate("StreamerSpace", { mid: data?.mid }) - } - style={tailwind("flex flex-row h-12 items-center pr-2 pl-4")} - > - - - 我的空间 - - - 创作者功能 - - - - )} */} navigation.navigate("StreamerPosts", { mid: data?.mid }) diff --git a/screeens/Posts/index.jsx b/screeens/Posts/index.jsx index bf4169c..a05dc65 100644 --- a/screeens/Posts/index.jsx +++ b/screeens/Posts/index.jsx @@ -1,13 +1,13 @@ import { View, TouchableOpacity, + useWindowDimensions, Image as NativeImage, - Dimensions, + Animated, } from "react-native"; -import React, { useState, useEffect, useCallback } from "react"; +import React, { useState, useCallback } from "react"; import { useTailwind } from "tailwind-rn"; import { useSafeAreaInsets } from "react-native-safe-area-context"; -import { Tab, TabView } from "@rneui/themed"; import FeedPosts from "./FeedPosts"; import FollowPosts from "./FollowPosts"; import { get, save } from "../../utils/storeInfo"; @@ -15,29 +15,11 @@ import { useFocusEffect } from "@react-navigation/native"; import baseRequest from "../../utils/baseRequest"; import { generateSignature } from "../../utils/crypto"; import Toast from "react-native-toast-message"; +import { TabView, SceneMap, TabBar } from "react-native-tab-view"; export default function Posts({ navigation }) { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); - const [index, setIndex] = useState(0); - - //修复ios使用了tab组件闪退问题 - const [indicatorX, setIndicatorX] = useState(0); - const windowWidth = Dimensions.get("window").width; - const tabWidth = windowWidth / 5; - - //根据用户是否是主播来决定是否展示发帖按钮 - const [isStreamer, setIsStreamer] = useState(false); - useEffect(() => { - const checkRole = async () => { - const account = await get("account"); - const role = account.role; - if (role === 3) { - setIsStreamer(true); - } - }; - checkRole(); - }, []); //每次focus都更新一次数据,查看会员状态是否改变 const [blur, setBlur] = useState(true); @@ -84,11 +66,6 @@ export default function Posts({ navigation }) { setBlur(true); } await save("account", accountData.data.account); - if (role === 3) { - setIsStreamer(true); - } else { - setIsStreamer(false); - } } catch (error) { console.error(error); } @@ -97,6 +74,76 @@ export default function Posts({ navigation }) { }, []) ); + //tab组件相关 + const layout = useWindowDimensions(); + const [index, setIndex] = useState(0); + const [routes] = useState([ + { key: "feed", title: "推荐" }, + { key: "follow", title: "关注" }, + ]); + + const renderScene = useCallback( + SceneMap({ + feed: () => , + follow: () => , + }), + [blur] + ); + + const renderIndicator = useCallback((props) => { + const { position, navigationState, getTabWidth } = props; + const inputRange = [0, 1]; + const translateX = position.interpolate({ + inputRange: inputRange, + outputRange: inputRange.map((x) => { + return x * getTabWidth(navigationState.index); + }), + }); + return ( + + + + ); + }, []); + + const renderTabBar = useCallback( + (props) => ( + + + navigation.navigate("Search")} + > + + + + ), + [] + ); + return ( - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - dense - indicatorStyle={{ - ...tailwind("h-1 w-10 ml-4 rounded-full"), - backgroundColor: "#FF7DCB", - transform: [{ translateX: indicatorX }], - }} - > - - 推荐 - - - 关注 - - - - navigation.navigate("Search")} - > - - - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - animationType="spring" - > - - - - - - - - + ); } diff --git a/screeens/Relationship/index.jsx b/screeens/Relationship/index.jsx index ad56d79..20b9643 100644 --- a/screeens/Relationship/index.jsx +++ b/screeens/Relationship/index.jsx @@ -1,19 +1,81 @@ -import { View, Dimensions } from "react-native"; -import React, { useState } from "react"; +import { + View, + Animated, + useWindowDimensions, + Image as NativeImage, +} from "react-native"; +import React, { useState, useCallback } from "react"; import { useTailwind } from "tailwind-rn"; import { useSafeAreaInsets } from "react-native-safe-area-context"; -import { Tab, TabView } from "@rneui/themed"; import Follows from "./Follows"; import Fans from "./Fans"; +import { TabView, SceneMap, TabBar } from "react-native-tab-view"; export default function Relationship({ navigation, route }) { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); - const [index, setIndex] = useState(route.params.tab); - //修复ios使用了tab组件闪退问题 - const windowWidth = Dimensions.get("window").width; - const tabWidth = windowWidth / 2; - const [indicatorX, setIndicatorX] = useState(route.params.tab * tabWidth); + + //tab组件相关 + const layout = useWindowDimensions(); + const [index, setIndex] = useState(route.params?.tab ? route.params?.tab : 0); + const [routes] = useState([ + { key: "follows", title: "关注" }, + { key: "fans", title: "粉丝" }, + ]); + + const renderScene = useCallback( + SceneMap({ + follows: () => , + fans: () => , + }), + [] + ); + + const renderIndicator = useCallback((props) => { + const { position, navigationState, getTabWidth } = props; + const inputRange = [0, 1]; + const translateX = position.interpolate({ + inputRange: inputRange, + outputRange: inputRange.map((x) => { + return x * getTabWidth(navigationState.index); + }), + }); + return ( + + + + ); + }, []); + + const renderTabBar = useCallback( + (props) => ( + + + + ), + [] + ); + return ( - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - dense - indicatorStyle={{ - ...tailwind("bg-[#FF7DCB] rounded-full"), - transform: [{ translateX: indicatorX }], - }} - > - - 关注 - - - 粉丝 - - - - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - animationType="spring" - > - - - - - - - - + ); } diff --git a/screeens/Space/index.jsx b/screeens/Space/index.jsx index 85c7cfb..1c3bf83 100644 --- a/screeens/Space/index.jsx +++ b/screeens/Space/index.jsx @@ -2,24 +2,89 @@ import { View, TouchableOpacity, Image as NativeImage, - Dimensions, + Animated, + useWindowDimensions, } from "react-native"; -import React, { useState } from "react"; +import React, { useState, useCallback } from "react"; import { useTailwind } from "tailwind-rn"; import { useSafeAreaInsets } from "react-native-safe-area-context"; -import { Tab, TabView } from "@rneui/themed"; import SpaceList from "./SpaceList"; import SpacePosts from "./SpacePosts"; +import { TabView, SceneMap, TabBar } from "react-native-tab-view"; export default function Space({ navigation }) { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); - const [index, setIndex] = useState(0); - //修复ios使用了tab组件闪退问题 - const [indicatorX, setIndicatorX] = useState(0); - const windowWidth = Dimensions.get("window").width; - const tabWidth = windowWidth / 5; + //tab组件相关 + const layout = useWindowDimensions(); + const [index, setIndex] = useState(0); + const [routes] = useState([ + { key: "list", title: "空间" }, + { key: "post", title: "动态" }, + ]); + + const renderScene = useCallback( + SceneMap({ + list: () => , + post: () => , + }), + [] + ); + + const renderIndicator = useCallback((props) => { + const { position, navigationState, getTabWidth } = props; + const inputRange = [0, 1]; + const translateX = position.interpolate({ + inputRange: inputRange, + outputRange: inputRange.map((x) => { + return x * getTabWidth(navigationState.index); + }), + }); + return ( + + + + ); + }, []); + + const renderTabBar = useCallback( + (props) => ( + + + navigation.navigate("Search")} + > + + + + ), + [] + ); return ( - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - dense - indicatorStyle={{ - ...tailwind("h-1 w-10 ml-4 rounded-full"), - backgroundColor: "#FF7DCB", - transform: [{ translateX: indicatorX }], - }} - > - - 空间 - - - 动态 - - - - navigation.navigate("Search")} - > - - - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - animationType="spring" - > - - - - - - - - + ); } diff --git a/screeens/SpaceSetting/SpaceMember/index.jsx b/screeens/SpaceSetting/SpaceMember/index.jsx index b098685..c4334e7 100644 --- a/screeens/SpaceSetting/SpaceMember/index.jsx +++ b/screeens/SpaceSetting/SpaceMember/index.jsx @@ -1,12 +1,10 @@ import { View, - Text, - TouchableOpacity, useWindowDimensions, Animated, Image as NativeImage, } from "react-native"; -import React, { useState, useEffect, useCallback } from "react"; +import React, { useState, useCallback } from "react"; import { useTailwind } from "tailwind-rn"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import { TabView, SceneMap, TabBar } from "react-native-tab-view"; diff --git a/screeens/Stream/index.jsx b/screeens/Stream/index.jsx index d720880..14fa6c1 100644 --- a/screeens/Stream/index.jsx +++ b/screeens/Stream/index.jsx @@ -2,24 +2,89 @@ import { View, TouchableOpacity, Image as NativeImage, - Dimensions, + Animated, + useWindowDimensions, } from "react-native"; -import React, { useState } from "react"; +import React, { useState, useCallback } from "react"; import { useTailwind } from "tailwind-rn"; import { useSafeAreaInsets } from "react-native-safe-area-context"; -import { Tab, TabView } from "@rneui/themed"; import FeedStream from "./FeedStream"; import FollowStream from "./FollowStream"; +import { TabView, SceneMap, TabBar } from "react-native-tab-view"; export default function Stream({ navigation }) { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); - const [index, setIndex] = useState(0); - //修复ios使用了tab组件闪退问题 - const [indicatorX, setIndicatorX] = useState(0); - const windowWidth = Dimensions.get("window").width; - const tabWidth = windowWidth / 5; + //tab组件相关 + const layout = useWindowDimensions(); + const [index, setIndex] = useState(0); + const [routes] = useState([ + { key: "feed", title: "推荐" }, + { key: "follow", title: "关注" }, + ]); + + const renderScene = useCallback( + SceneMap({ + feed: () => , + follow: () => , + }), + [] + ); + + const renderIndicator = useCallback((props) => { + const { position, navigationState, getTabWidth } = props; + const inputRange = [0, 1]; + const translateX = position.interpolate({ + inputRange: inputRange, + outputRange: inputRange.map((x) => { + return x * getTabWidth(navigationState.index); + }), + }); + return ( + + + + ); + }, []); + + const renderTabBar = useCallback( + (props) => ( + + + navigation.navigate("Search")} + > + + + + ), + [] + ); return ( - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - dense - indicatorStyle={{ - ...tailwind("h-1 w-10 ml-4 rounded-full"), - backgroundColor: "#FF7DCB", - transform: [{ translateX: indicatorX }], - }} - > - - 推荐 - - - 关注 - - - - navigation.navigate("Search")} - > - - - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - animationType="spring" - > - - - - - - - - + ); } diff --git a/screeens/StreamerSpace/index.jsx b/screeens/StreamerSpace/index.jsx index fb1b70a..c02dde1 100644 --- a/screeens/StreamerSpace/index.jsx +++ b/screeens/StreamerSpace/index.jsx @@ -202,8 +202,10 @@ export default function StreamerSpace({ navigation, route }) { (props) => ( ), diff --git a/screeens/WechatWaitingToAdd/index.jsx b/screeens/WechatWaitingToAdd/index.jsx index c16981a..a9e5d85 100644 --- a/screeens/WechatWaitingToAdd/index.jsx +++ b/screeens/WechatWaitingToAdd/index.jsx @@ -1,19 +1,82 @@ -import { View, Dimensions } from "react-native"; -import React, { useState } from "react"; +import { + View, + Dimensions, + Animated, + useWindowDimensions, + Image as NativeImage, +} from "react-native"; +import React, { useState, useCallback } from "react"; import { useTailwind } from "tailwind-rn"; import { useSafeAreaInsets } from "react-native-safe-area-context"; -import { Tab, TabView } from "@rneui/themed"; import AlreadyAddWechat from "./AlreadyAddWechat"; import HaveNotAddWechat from "./HaveNotAddWechat"; +import { TabView, SceneMap, TabBar } from "react-native-tab-view"; export default function WechatWaitingToAdd({ navigation, route }) { const tailwind = useTailwind(); const insets = useSafeAreaInsets(); - const [index, setIndex] = useState(route.params?.tab); - //修复ios使用了tab组件闪退问题 - const [indicatorX, setIndicatorX] = useState(0); - const windowWidth = Dimensions.get("window").width; - const tabWidth = windowWidth / 2; + + //tab组件相关 + const layout = useWindowDimensions(); + const [index, setIndex] = useState(route.params?.tab ? route.params?.tab : 0); + const [routes] = useState([ + { key: "haveNotAddWechat", title: "待添加" }, + { key: "alreadyAddWechat", title: "已完成" }, + ]); + + const renderScene = useCallback( + SceneMap({ + haveNotAddWechat: () => , + alreadyAddWechat: () => , + }), + [] + ); + + const renderIndicator = useCallback((props) => { + const { position, navigationState, getTabWidth } = props; + const inputRange = [0, 1]; + const translateX = position.interpolate({ + inputRange: inputRange, + outputRange: inputRange.map((x) => { + return x * getTabWidth(navigationState.index); + }), + }); + return ( + + + + ); + }, []); + + const renderTabBar = useCallback( + (props) => ( + + + + ), + [] + ); + return ( - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - dense - indicatorStyle={{ - ...tailwind("bg-[#FF7DCB] rounded-full"), - transform: [{ translateX: indicatorX }], - }} - > - - 待添加 - - - 已完成 - - - - - - { - setIndex(e); - setIndicatorX(e * tabWidth); - }} - animationType="spring" - > - - - - - - - - + ); }