Files

39 lines
1018 B
JavaScript

import { create } from "zustand";
import * as api from "@/api/wishlist";
export const useWishlist = create((set) => ({
wishlistNotices: [],
toggleNoticeInWishlist: async (noticeId) => {
try {
await api.toggleNoticeStatus(noticeId);
set((state) => {
const exists = state.wishlistNotices.some(
(item) => item.noticeId == noticeId
);
return exists
? {
wishlistNotices: state.wishlistNotices.filter(
(item) => item.noticeId != noticeId
),
}
: {
wishlistNotices: [
...state.wishlistNotices,
{ noticeId },
],
};
});
} catch (error) {
console.error("Error toggling wishlist notice:", error);
}
},
fetchWishlist: async () => {
try {
const data = await api.getWishlist();
set({ wishlistNotices: data });
} catch (error) {
console.error("Error fetching wishlist:", error);
}
},
}));