procurement-frontend2/src/widgets/TendersList/tendersStore.ts
2024-09-03 23:37:54 +06:00

40 lines
1003 B
TypeScript

import { apiInstance } from "@/shared/config/apiConfig";
import { IFetch } from "@/shared/types/fetch-type";
import { ITendersList } from "@/shared/types/tenders-type";
import { AxiosError } from "axios";
import { create } from "zustand";
interface useTendersStore extends IFetch {
data: ITendersList;
getTenders: (ordering: number) => void;
}
export const useTendersStore = create<useTendersStore>((set) => ({
data: {
count: 0,
previous: null,
next: null,
results: [],
},
error: "",
isLoading: false,
getTenders: async (ordering: number) => {
try {
set({ isLoading: true });
const res = await apiInstance.get(
`/procurements/?ordering=${ordering}/?limit=${10}/`
);
set({ data: res.data });
} catch (error: unknown) {
if (error instanceof AxiosError) {
set({ error: error.message });
} else {
set({ error: "An error occured" });
}
} finally {
set({ isLoading: false });
}
},
}));