39 lines
1018 B
JavaScript
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);
|
|
}
|
|
},
|
|
}));
|