xref: /MusicFree/src/pages/searchPage/index.tsx (revision 0b940038696677ddf4d2a91434ce49a8383fecf4)
1bf6e62f2S猫头猫import React, {useEffect} from 'react';
2bf6e62f2S猫头猫import {StyleSheet, Text, View} from 'react-native';
3bf6e62f2S猫头猫import rpx from '@/utils/rpx';
4bf6e62f2S猫头猫import NavBar from './components/navBar';
5bf6e62f2S猫头猫import {useAtom, useAtomValue, useSetAtom} from 'jotai';
6*0b940038S猫头猫import {initSearchResults, PageStatus, pageStatusAtom, queryAtom, searchResultsAtom} from './store/atoms';
7bf6e62f2S猫头猫import HistoryPanel from './components/historyPanel';
8bf6e62f2S猫头猫import ResultPanel from './components/resultPanel';
9bf6e62f2S猫头猫import MusicBar from '@/components/musicBar';
1019dc08ecS猫头猫import Loading from '@/components/base/loading';
111c06c799S猫头猫import { SafeAreaView } from 'react-native-safe-area-context';
1219dc08ecS猫头猫import StatusBar from '@/components/base/statusBar';
13bf6e62f2S猫头猫interface IProps {}
14bf6e62f2S猫头猫export default function (props: IProps) {
15bf6e62f2S猫头猫  const [pageStatus, setPageStatus] = useAtom(pageStatusAtom);
16bf6e62f2S猫头猫  const setQuery = useSetAtom(queryAtom);
17bf6e62f2S猫头猫  const setSearchResultsState = useSetAtom(searchResultsAtom);
18bf6e62f2S猫头猫  useEffect(() => {
19*0b940038S猫头猫    setSearchResultsState(initSearchResults);
20bf6e62f2S猫头猫    return () => {
21bf6e62f2S猫头猫      setPageStatus(PageStatus.EDITING);
22bf6e62f2S猫头猫      setQuery('');
23bf6e62f2S猫头猫    };
24bf6e62f2S猫头猫  }, []);
25bf6e62f2S猫头猫
26bf6e62f2S猫头猫  return (
271c06c799S猫头猫    <SafeAreaView style={style.wrapper}>
28bc2d140eS猫头猫      <StatusBar></StatusBar>
29bf6e62f2S猫头猫      <NavBar></NavBar>
30bf6e62f2S猫头猫      <View style={{flex: 1}}>
31bf6e62f2S猫头猫        {pageStatus === PageStatus.EDITING && <HistoryPanel></HistoryPanel>}
32bf6e62f2S猫头猫        {pageStatus === PageStatus.SEARCHING && <Loading></Loading>}
33bf6e62f2S猫头猫        {pageStatus === PageStatus.RESULT && <ResultPanel></ResultPanel>}
34bf6e62f2S猫头猫      </View>
35bf6e62f2S猫头猫      <MusicBar></MusicBar>
361c06c799S猫头猫    </SafeAreaView>
37bf6e62f2S猫头猫  );
38bf6e62f2S猫头猫}
39bf6e62f2S猫头猫
40bf6e62f2S猫头猫const style = StyleSheet.create({
41bf6e62f2S猫头猫  wrapper: {
42bf6e62f2S猫头猫    width: rpx(750),
43bf6e62f2S猫头猫    flex: 1,
44bf6e62f2S猫头猫  },
45bf6e62f2S猫头猫});
46