103f1f70cS猫头猫import React, {useState} from 'react'; 24060c00aS猫头猫import {StyleSheet} from 'react-native'; 303f1f70cS猫头猫import rpx from '@/utils/rpx'; 403f1f70cS猫头猫import {useNavigation, useRoute} from '@react-navigation/native'; 503f1f70cS猫头猫import MusicBar from '@/components/musicBar'; 603f1f70cS猫头猫import SearchResult from './searchResult'; 703f1f70cS猫头猫import StatusBar from '@/components/base/statusBar'; 803f1f70cS猫头猫import {Appbar, Searchbar} from 'react-native-paper'; 903f1f70cS猫头猫import useColors from '@/hooks/useColors'; 1003f1f70cS猫头猫import {SafeAreaView} from 'react-native-safe-area-context'; 1103f1f70cS猫头猫import {fontSizeConst} from '@/constants/uiConst'; 1203f1f70cS猫头猫 1303f1f70cS猫头猫function filterMusic(query: string, musicList: IMusic.IMusicItem[]) { 1403f1f70cS猫头猫 if (query?.length === 0) { 15*0224b881S猫头猫 return musicList; 1603f1f70cS猫头猫 } 1703f1f70cS猫头猫 return musicList.filter(_ => 184060c00aS猫头猫 `${_.title} ${_.artist} ${_.album} ${_.platform}`.includes( 194060c00aS猫头猫 query.trim(), 204060c00aS猫头猫 ), 2103f1f70cS猫头猫 ); 2203f1f70cS猫头猫} 2303f1f70cS猫头猫 244060c00aS猫头猫export default function SearchMusicList() { 2503f1f70cS猫头猫 const route = useRoute<any>(); 2603f1f70cS猫头猫 const navigation = useNavigation(); 2703f1f70cS猫头猫 const musicList: IMusic.IMusicItem[] = route.params?.musicList ?? []; 28*0224b881S猫头猫 const [result, setResult] = useState<IMusic.IMusicItem[]>(musicList); 2903f1f70cS猫头猫 const [query, setQuery] = useState(''); 3003f1f70cS猫头猫 3103f1f70cS猫头猫 console.log(musicList); 3203f1f70cS猫头猫 3303f1f70cS猫头猫 const colors = useColors(); 3403f1f70cS猫头猫 3503f1f70cS猫头猫 const onChangeSearch = (_: string) => { 3603f1f70cS猫头猫 _ = _.trim(); 3703f1f70cS猫头猫 setQuery(_); 3803f1f70cS猫头猫 setResult(filterMusic(_, musicList)); 3903f1f70cS猫头猫 }; 4003f1f70cS猫头猫 4103f1f70cS猫头猫 return ( 4203f1f70cS猫头猫 <SafeAreaView style={style.wrapper}> 434060c00aS猫头猫 <StatusBar /> 444060c00aS猫头猫 <Appbar.Header 454060c00aS猫头猫 style={[style.appbar, {backgroundColor: colors.primary}]}> 4603f1f70cS猫头猫 <Appbar.BackAction 4703f1f70cS猫头猫 onPress={() => { 4803f1f70cS猫头猫 navigation.goBack(); 4903f1f70cS猫头猫 }} 5003f1f70cS猫头猫 /> 5103f1f70cS猫头猫 <Searchbar 5203f1f70cS猫头猫 style={style.searchBar} 5303f1f70cS猫头猫 inputStyle={style.input} 5403f1f70cS猫头猫 placeholder="在列表中搜索歌曲" 5503f1f70cS猫头猫 value={query} 564060c00aS猫头猫 onChangeText={onChangeSearch} 574060c00aS猫头猫 /> 5803f1f70cS猫头猫 </Appbar.Header> 594060c00aS猫头猫 <SearchResult result={result} /> 604060c00aS猫头猫 <MusicBar /> 6103f1f70cS猫头猫 </SafeAreaView> 6203f1f70cS猫头猫 ); 6303f1f70cS猫头猫} 6403f1f70cS猫头猫 6503f1f70cS猫头猫const style = StyleSheet.create({ 6603f1f70cS猫头猫 wrapper: { 6703f1f70cS猫头猫 width: rpx(750), 6803f1f70cS猫头猫 flex: 1, 6903f1f70cS猫头猫 }, 7003f1f70cS猫头猫 appbar: { 7103f1f70cS猫头猫 shadowColor: 'transparent', 7203f1f70cS猫头猫 backgroundColor: '#2b333eaa', 7303f1f70cS猫头猫 }, 7403f1f70cS猫头猫 searchBar: { 7503f1f70cS猫头猫 minWidth: rpx(375), 7603f1f70cS猫头猫 flex: 1, 7703f1f70cS猫头猫 borderRadius: rpx(64), 7803f1f70cS猫头猫 height: rpx(64), 7903f1f70cS猫头猫 color: '#666666', 8003f1f70cS猫头猫 }, 8103f1f70cS猫头猫 input: { 8203f1f70cS猫头猫 padding: 0, 8303f1f70cS猫头猫 color: '#666666', 8403f1f70cS猫头猫 height: rpx(64), 8503f1f70cS猫头猫 fontSize: fontSizeConst.subTitle, 8603f1f70cS猫头猫 textAlignVertical: 'center', 8703f1f70cS猫头猫 includeFontPadding: false, 8803f1f70cS猫头猫 }, 8903f1f70cS猫头猫}); 90