xref: /MusicFree/src/pages/searchPage/store/atoms.ts (revision 9d40a3fa971e70a778b405ee3569bce02856db4c)
1bf6e62f2S猫头猫import {atom} from 'jotai';
2bf6e62f2S猫头猫
3bf6e62f2S猫头猫export interface ISearchResultState {
4bf6e62f2S猫头猫  currentPage?: number;
5bf6e62f2S猫头猫  query?: string;
608a8e62cS猫头猫  state: 'pending' | 'resolved' | 'done'; // 搜索中 返回请求 搜索结束
7d139abf1S猫头猫  result: IPlugin.ISearchResult;
8bf6e62f2S猫头猫}
9*9d40a3faS猫头猫/** key: pluginhash value: searchResult */
10bf6e62f2S猫头猫const searchResults: Record<string, ISearchResultState> = {};
11bf6e62f2S猫头猫const searchResultsAtom = atom(searchResults);
12bf6e62f2S猫头猫
13bf6e62f2S猫头猫
14bf6e62f2S猫头猫
15bf6e62f2S猫头猫export enum PageStatus {
16bf6e62f2S猫头猫  /** 编辑中 */
17bf6e62f2S猫头猫  EDITING = 'EDITING',
18bf6e62f2S猫头猫  /** 搜索中 */
19bf6e62f2S猫头猫  SEARCHING = 'SEARCHING',
20bf6e62f2S猫头猫  /** 有结果 */
21bf6e62f2S猫头猫  RESULT = 'RESULT',
22bf6e62f2S猫头猫}
23bf6e62f2S猫头猫
24bf6e62f2S猫头猫const pageStatusAtom = atom<PageStatus>(PageStatus.EDITING);
25bf6e62f2S猫头猫
26bf6e62f2S猫头猫// 搜索
27bf6e62f2S猫头猫const queryAtom = atom<string>('');
28bf6e62f2S猫头猫
29bf6e62f2S猫头猫export {searchResults, pageStatusAtom, searchResultsAtom, queryAtom};
30