xref: /MusicFree/src/pages/searchPage/index.tsx (revision c30d30e1bb554a5647daa535b019045e8ef1a703)
1bf6e62f2S猫头猫import React, {useEffect} from 'react';
24060c00aS猫头猫import {StyleSheet, View} from 'react-native';
3bf6e62f2S猫头猫import rpx from '@/utils/rpx';
4bf6e62f2S猫头猫import NavBar from './components/navBar';
54060c00aS猫头猫import {useAtom, useSetAtom} from 'jotai';
64060c00aS猫头猫import {
74060c00aS猫头猫    initSearchResults,
84060c00aS猫头猫    PageStatus,
94060c00aS猫头猫    pageStatusAtom,
104060c00aS猫头猫    queryAtom,
114060c00aS猫头猫    searchResultsAtom,
124060c00aS猫头猫} 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*c30d30e1S猫头猫import NoPlugin from './components/noPlugin';
204060c00aS猫头猫
214060c00aS猫头猫export default function () {
22bf6e62f2S猫头猫    const [pageStatus, setPageStatus] = useAtom(pageStatusAtom);
23bf6e62f2S猫头猫    const setQuery = useSetAtom(queryAtom);
24bf6e62f2S猫头猫    const setSearchResultsState = useSetAtom(searchResultsAtom);
25bf6e62f2S猫头猫    useEffect(() => {
260b940038S猫头猫        setSearchResultsState(initSearchResults);
27bf6e62f2S猫头猫        return () => {
28bf6e62f2S猫头猫            setPageStatus(PageStatus.EDITING);
29bf6e62f2S猫头猫            setQuery('');
30bf6e62f2S猫头猫        };
31bf6e62f2S猫头猫    }, []);
32bf6e62f2S猫头猫
33bf6e62f2S猫头猫    return (
341c06c799S猫头猫        <SafeAreaView style={style.wrapper}>
354060c00aS猫头猫            <StatusBar />
364060c00aS猫头猫            <NavBar />
37bf6e62f2S猫头猫            <View style={{flex: 1}}>
384060c00aS猫头猫                {pageStatus === PageStatus.EDITING && <HistoryPanel />}
394060c00aS猫头猫                {pageStatus === PageStatus.SEARCHING && <Loading />}
404060c00aS猫头猫                {pageStatus === PageStatus.RESULT && <ResultPanel />}
41*c30d30e1S猫头猫                {pageStatus === PageStatus.NO_PLUGIN && <NoPlugin />}
42bf6e62f2S猫头猫            </View>
434060c00aS猫头猫            <MusicBar />
441c06c799S猫头猫        </SafeAreaView>
45bf6e62f2S猫头猫    );
46bf6e62f2S猫头猫}
47bf6e62f2S猫头猫
48bf6e62f2S猫头猫const style = StyleSheet.create({
49bf6e62f2S猫头猫    wrapper: {
50bf6e62f2S猫头猫        width: rpx(750),
51bf6e62f2S猫头猫        flex: 1,
52bf6e62f2S猫头猫    },
53bf6e62f2S猫头猫});
54