xref: /MusicFree/src/pages/searchPage/store/atoms.ts (revision bf6e62f27bf21a011995d7561e0093fae1a2d72e)
1*bf6e62f2S猫头猫import {atom} from 'jotai';
2*bf6e62f2S猫头猫
3*bf6e62f2S猫头猫export interface ISearchResultState {
4*bf6e62f2S猫头猫  currentPage?: number;
5*bf6e62f2S猫头猫  query?: string;
6*bf6e62f2S猫头猫  pending: boolean;
7*bf6e62f2S猫头猫  result: Array<IPlugin.ISearchResult>;
8*bf6e62f2S猫头猫}
9*bf6e62f2S猫头猫const searchResults: Record<string, ISearchResultState> = {};
10*bf6e62f2S猫头猫const searchResultsAtom = atom(searchResults);
11*bf6e62f2S猫头猫
12*bf6e62f2S猫头猫
13*bf6e62f2S猫头猫
14*bf6e62f2S猫头猫export enum PageStatus {
15*bf6e62f2S猫头猫  /** 编辑中 */
16*bf6e62f2S猫头猫  EDITING = 'EDITING',
17*bf6e62f2S猫头猫  /** 搜索中 */
18*bf6e62f2S猫头猫  SEARCHING = 'SEARCHING',
19*bf6e62f2S猫头猫  /** 有结果 */
20*bf6e62f2S猫头猫  RESULT = 'RESULT',
21*bf6e62f2S猫头猫}
22*bf6e62f2S猫头猫
23*bf6e62f2S猫头猫const pageStatusAtom = atom<PageStatus>(PageStatus.EDITING);
24*bf6e62f2S猫头猫
25*bf6e62f2S猫头猫// 搜索
26*bf6e62f2S猫头猫const queryAtom = atom<string>('');
27*bf6e62f2S猫头猫
28*bf6e62f2S猫头猫export {searchResults, pageStatusAtom, searchResultsAtom, queryAtom};
29