diff --git a/screeens/Search/index.jsx b/screeens/Search/index.jsx index d819e35..db8303f 100644 --- a/screeens/Search/index.jsx +++ b/screeens/Search/index.jsx @@ -1,4 +1,4 @@ -import { View, Text, FlatList, Image as NativeImage } from "react-native"; +import { View, Text, Image as NativeImage, ScrollView } from "react-native"; import React, { useState, useEffect, useRef } from "react"; import { useTailwind } from "tailwind-rn"; import { useSafeAreaInsets } from "react-native-safe-area-context"; @@ -8,17 +8,17 @@ import Empty from "../../components/Empty"; import Toast from "react-native-toast-message"; import baseRequest from "../../utils/baseRequest"; import { generateSignature } from "../../utils/crypto"; +import MyDivider from "../../components/MyDivider/index"; export default function Search({ navigation, route }) { - const blurhash = "LcKUTa%gOYWBYRt6xuoJo~s8V@fk"; - const tailwind = useTailwind(); const insets = useSafeAreaInsets(); const searchRef = useRef(null); const [search, setSearch] = useState(""); - const [result, setResult] = useState([]); + const [streamers, setStreamers] = useState([]); + const [zones, setZones] = useState([]); const [isloading, setIsloading] = useState(false); const updateSearch = (search) => { setSearch(search); @@ -34,7 +34,8 @@ export default function Search({ navigation, route }) { //搜索框文本变化时进行搜索 useEffect(() => { if (!search) { - setResult([]); + setStreamers([]); + setZones([]); return; } const isNumeric = (str) => { @@ -82,7 +83,11 @@ export default function Search({ navigation, route }) { return; } if (!ignore) { - setResult(data.data.list); + const zonesData = data.data.list.filter( + (item) => item.zones.length > 0 + ); + setStreamers(data.data.list); + setZones(zonesData); } setIsloading(false); } catch (error) { @@ -96,8 +101,157 @@ export default function Search({ navigation, route }) { }; }, [search]); - //搜索项组件 - const renderItem = ({ item }) => { + //空间组件 + const ZoneItem = ({ item }) => { + return ( + + navigation.navigate("SpaceIntroduce", { mid: item?.mid }) + } + containerStyle={tailwind("p-0 bg-[#07050A]")} + > + + + + + + + {item?.name} + + + + + {item?.user_id} + + + + + {item.zones[0].profile} + + + + {zones.length === 1 && ( + + + Ta的动态· + {item.zones[0].zone_moment_count > 99 + ? "99+" + : item.zones[0].zone_moment_count} + {item.zones[0].image_count > 0 && + ` | 图片·${ + item.zones[0].image_count > 99 + ? "99+" + : item.zones[0].image_count + }`} + {item.zones[0].video_count > 0 && + ` | 视频·${ + item.zones[0].video_count > 99 + ? "99+" + : item.zones[0].video_count + }`} + + + + + + + + + + + + + {item.album.images.map((_item, index) => { + if (index > 1) return; + return ( + + + + ); + })} + + + + )} + + + ); + }; + + //主播组件 + const StreamerItem = ({ item }) => { return ( @@ -105,7 +259,6 @@ export default function Search({ navigation, route }) { mid: item.mid, }) } - bottomDivider containerStyle={tailwind("p-0 bg-[#07050A]")} > @@ -113,7 +266,6 @@ export default function Search({ navigation, route }) { - - } - /> - + + {zones.length > 0 && ( + + 空间 + + )} + {zones?.map((item, index) => ( + + ))} + {zones.length > 0 && } + {streamers.length > 0 && ( + + 用户 + + )} + {streamers?.map((item, index) => ( + + ))} + {zones.length === 0 && streamers.length === 0 && ( + + )} + ); }