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