22 lines
488 B
TypeScript
22 lines
488 B
TypeScript
import { writable } from 'svelte/store';
|
|
|
|
type CartItem = any;
|
|
|
|
function createCart() {
|
|
const { subscribe, set, update } = writable<CartItem[]>([]);
|
|
|
|
return {
|
|
subscribe,
|
|
add: (product: CartItem) =>
|
|
update((items) => {
|
|
if (items.find((item) => item.id === product.id)) return items;
|
|
return [...items, product];
|
|
}),
|
|
remove: (id: number) =>
|
|
update((items) => items.filter((item) => item.id !== id)),
|
|
clear: () => set([]),
|
|
};
|
|
}
|
|
|
|
export const cart = createCart();
|
|
|