xref: /MusicFree/src/pages/searchPage/index.tsx (revision 4060c00a75883036bbd315fb25c90065209312b3)
1bf6e62f2S猫头猫import React, {useEffect} from 'react';
2*4060c00aS猫头猫import {StyleSheet, View} from 'react-native';
3bf6e62f2S猫头猫import rpx from '@/utils/rpx';
4bf6e62f2S猫头猫import NavBar from './components/navBar';
5*4060c00aS猫头猫import {useAtom, useSetAtom} from 'jotai';
6*4060c00aS猫头猫import {
7*4060c00aS猫头猫    initSearchResults,
8*4060c00aS猫头猫    PageStatus,
9*4060c00aS猫头猫    pageStatusAtom,
10*4060c00aS猫头猫    queryAtom,
11*4060c00aS猫头猫    searchResultsAtom,
12*4060c00aS猫头猫} from './store/atoms';
13bf6e62f2S猫头猫import HistoryPanel from './components/historyPanel';
14bf6e62f2S猫头猫import ResultPanel from './components/resultPanel';
15bf6e62f2S猫头猫import MusicBar from '@/components/musicBar';
1619dc08ecS猫头猫import Loading from '@/components/base/loading';
171c06c799S猫头猫import {SafeAreaView} from 'react-native-safe-area-context';
1819dc08ecS猫头猫import StatusBar from '@/components/base/statusBar';
19*4060c00aS猫头猫
20*4060c00aS猫头猫export default function () {
21bf6e62f2S猫头猫    const [pageStatus, setPageStatus] = useAtom(pageStatusAtom);
22bf6e62f2S猫头猫    const setQuery = useSetAtom(queryAtom);
23bf6e62f2S猫头猫    const setSearchResultsState = useSetAtom(searchResultsAtom);
24bf6e62f2S猫头猫    useEffect(() => {
250b940038S猫头猫        setSearchResultsState(initSearchResults);
26bf6e62f2S猫头猫        return () => {
27bf6e62f2S猫头猫            setPageStatus(PageStatus.EDITING);
28bf6e62f2S猫头猫            setQuery('');
29bf6e62f2S猫头猫        };
30bf6e62f2S猫头猫    }, []);
31bf6e62f2S猫头猫
32bf6e62f2S猫头猫    return (
331c06c799S猫头猫        <SafeAreaView style={style.wrapper}>
34*4060c00aS猫头猫            <StatusBar />
35*4060c00aS猫头猫            <NavBar />
36bf6e62f2S猫头猫            <View style={{flex: 1}}>
37*4060c00aS猫头猫                {pageStatus === PageStatus.EDITING && <HistoryPanel />}
38*4060c00aS猫头猫                {pageStatus === PageStatus.SEARCHING && <Loading />}
39*4060c00aS猫头猫                {pageStatus === PageStatus.RESULT && <ResultPanel />}
40bf6e62f2S猫头猫            </View>
41*4060c00aS猫头猫            <MusicBar />
421c06c799S猫头猫        </SafeAreaView>
43bf6e62f2S猫头猫    );
44bf6e62f2S猫头猫}
45bf6e62f2S猫头猫
46bf6e62f2S猫头猫const style = StyleSheet.create({
47bf6e62f2S猫头猫    wrapper: {
48bf6e62f2S猫头猫        width: rpx(750),
49bf6e62f2S猫头猫        flex: 1,
50bf6e62f2S猫头猫    },
51bf6e62f2S猫头猫});
52