xref: /MusicFree/src/pages/searchPage/common/historySearch.ts (revision bf6e62f27bf21a011995d7561e0093fae1a2d72e)
1*bf6e62f2S猫头猫import AsyncStorage from '@react-native-async-storage/async-storage';
2*bf6e62f2S猫头猫
3*bf6e62f2S猫头猫export async function getHistory() {
4*bf6e62f2S猫头猫  let searchList = [];
5*bf6e62f2S猫头猫  try {
6*bf6e62f2S猫头猫    const _ = await AsyncStorage.getItem('history-search');
7*bf6e62f2S猫头猫    if (!_) {
8*bf6e62f2S猫头猫      throw new Error();
9*bf6e62f2S猫头猫    }
10*bf6e62f2S猫头猫    searchList = JSON.parse(_);
11*bf6e62f2S猫头猫  } catch {
12*bf6e62f2S猫头猫    searchList = [];
13*bf6e62f2S猫头猫  }
14*bf6e62f2S猫头猫  return searchList;
15*bf6e62f2S猫头猫}
16*bf6e62f2S猫头猫
17*bf6e62f2S猫头猫export async function addHistory(query: string) {
18*bf6e62f2S猫头猫  let searchList = await getHistory();
19*bf6e62f2S猫头猫  searchList = [query].concat(searchList.filter((_: string) => _ !== query));
20*bf6e62f2S猫头猫  await AsyncStorage.setItem('history-search', JSON.stringify(searchList));
21*bf6e62f2S猫头猫}
22*bf6e62f2S猫头猫
23*bf6e62f2S猫头猫export async function removeHistory(query: string) {
24*bf6e62f2S猫头猫  let searchList = await getHistory();
25*bf6e62f2S猫头猫  searchList = searchList.filter((_: string) => _ !== query);
26*bf6e62f2S猫头猫  await AsyncStorage.setItem('history-search', JSON.stringify(searchList));
27*bf6e62f2S猫头猫}
28