1ceb900cdS猫头猫import React, {memo, useState} from 'react'; 2ceb900cdS猫头猫import {StyleSheet, View} from 'react-native'; 3ceb900cdS猫头猫import rpx from '@/utils/rpx'; 4ceb900cdS猫头猫import globalStyle from '@/constants/globalStyle'; 5ceb900cdS猫头猫import {ScrollView} from 'react-native-gesture-handler'; 6ceb900cdS猫头猫import TypeTag from '../../../../components/base/typeTag'; 7c15039e2S猫头猫 8ceb900cdS猫头猫import useRecommendList from '../../hooks/useRecommendListTags'; 9ceb900cdS猫头猫import SheetList from './sheetList'; 10*5589cdf3S猫头猫import {hidePanel, showPanel} from '@/components/panels/usePanel'; 11ceb900cdS猫头猫 12ceb900cdS猫头猫interface IProps { 13ceb900cdS猫头猫 hash: string; 14ceb900cdS猫头猫} 15ceb900cdS猫头猫 16ceb900cdS猫头猫const defaultTag: ICommon.IUnique = { 17ceb900cdS猫头猫 title: '默认', 18ceb900cdS猫头猫 id: '', 19ceb900cdS猫头猫}; 20ceb900cdS猫头猫function SheetBody(props: IProps) { 21ceb900cdS猫头猫 const {hash} = props; 22ceb900cdS猫头猫 23ceb900cdS猫头猫 // 选中的tag 24ceb900cdS猫头猫 const [selectedTag, setSelectedTag] = useState<ICommon.IUnique>(defaultTag); 25ceb900cdS猫头猫 26ceb900cdS猫头猫 // 第一个tag 27ceb900cdS猫头猫 const [firstTag, setFirstTag] = useState<ICommon.IUnique>(defaultTag); 28ceb900cdS猫头猫 29ceb900cdS猫头猫 // 所有tag 30ceb900cdS猫头猫 const tags = useRecommendList(hash); 31ceb900cdS猫头猫 32ceb900cdS猫头猫 return ( 33ceb900cdS猫头猫 <View style={globalStyle.fwflex1}> 34ceb900cdS猫头猫 <ScrollView 35ceb900cdS猫头猫 style={style.headerWrapper} 36ceb900cdS猫头猫 contentContainerStyle={style.header} 376cfecf1cS猫头猫 showsHorizontalScrollIndicator={false} 38ceb900cdS猫头猫 horizontal> 39ceb900cdS猫头猫 <TypeTag 40ceb900cdS猫头猫 title={firstTag.title} 41ceb900cdS猫头猫 selected={selectedTag.id === firstTag.id} 42ceb900cdS猫头猫 onPress={() => { 43ceb900cdS猫头猫 // 拉起浮层 44ceb900cdS猫头猫 showPanel('SheetTags', { 45ceb900cdS猫头猫 tags: tags?.data ?? [], 46ceb900cdS猫头猫 onTagPressed(tag) { 47ceb900cdS猫头猫 setSelectedTag(tag); 48ceb900cdS猫头猫 setFirstTag(tag); 49ceb900cdS猫头猫 hidePanel(); 50ceb900cdS猫头猫 }, 51ceb900cdS猫头猫 }); 52ceb900cdS猫头猫 }} 53ceb900cdS猫头猫 /> 54ceb900cdS猫头猫 {(tags?.pinned ?? []).map(_ => ( 55ceb900cdS猫头猫 <TypeTag 56ceb900cdS猫头猫 key={`pinned-${_.id}`} 57956ee1b7S猫头猫 title={_?.title ?? ''} 58ceb900cdS猫头猫 selected={selectedTag.id === _.id} 59ceb900cdS猫头猫 onPress={() => { 60ceb900cdS猫头猫 setSelectedTag(_); 61ceb900cdS猫头猫 }} 62ceb900cdS猫头猫 /> 63ceb900cdS猫头猫 ))} 64ceb900cdS猫头猫 </ScrollView> 65ceb900cdS猫头猫 <SheetList tag={selectedTag} pluginHash={hash} /> 66ceb900cdS猫头猫 </View> 67ceb900cdS猫头猫 ); 68ceb900cdS猫头猫} 69ceb900cdS猫头猫 70ceb900cdS猫头猫export default memo(SheetBody, (prev, curr) => prev.hash === curr.hash); 71ceb900cdS猫头猫 72ceb900cdS猫头猫const style = StyleSheet.create({ 73ceb900cdS猫头猫 headerWrapper: { 74ceb900cdS猫头猫 height: rpx(100), 75ceb900cdS猫头猫 flexGrow: 0, 76ceb900cdS猫头猫 }, 77ceb900cdS猫头猫 header: { 78ceb900cdS猫头猫 height: rpx(100), 79ceb900cdS猫头猫 alignItems: 'center', 80ceb900cdS猫头猫 }, 81ceb900cdS猫头猫}); 82