mirror of https://github.com/usememos/memos.git
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import store, { useAppSelector } from "..";
|
|
import * as api from "../../helpers/api";
|
|
import { setStorages, createStorage, patchStorage, deleteStorage } from "../reducer/storage";
|
|
|
|
export const useStorageStore = () => {
|
|
const state = useAppSelector((state) => state.storage);
|
|
return {
|
|
state,
|
|
getState: () => {
|
|
return store.getState().storage;
|
|
},
|
|
fetchStorages: async () => {
|
|
const { data } = (await api.getStorageList()).data;
|
|
store.dispatch(setStorages(data));
|
|
},
|
|
createStorage: async (storageCreate: StorageCreate) => {
|
|
const { data: storage } = (await api.createStorage(storageCreate)).data;
|
|
store.dispatch(createStorage(storage));
|
|
return storage;
|
|
},
|
|
patchStorage: async (storagePatch: StoragePatch) => {
|
|
const { data: storage } = (await api.patchStorage(storagePatch)).data;
|
|
store.dispatch(patchStorage(storage));
|
|
return storage;
|
|
},
|
|
deleteStorageById: async (storageId: StorageId) => {
|
|
await api.deleteStorage(storageId);
|
|
store.dispatch(deleteStorage(storageId));
|
|
},
|
|
};
|
|
};
|