templates2.Store.Nuxt/app/plugins/cart.client.ts
w4c-templates 228f2f01f2
Some checks failed
CI / quality (push) Has been cancelled
chore(template): publish Store.Nuxt
2026-10-11 23:24:30 +03:00

26 lines
580 B
TypeScript

import type { CartItem } from '#shared/types';
const KEY = 'w4c_cart';
/** Hydrate the cart from localStorage once, then persist every change. */
export default defineNuxtPlugin(() => {
const items = useState<CartItem[]>('cart-items', () => []);
try {
const raw = localStorage.getItem(KEY);
if (raw) items.value = JSON.parse(raw) as CartItem[];
} catch {
/* ignore */
}
watch(
items,
(value) => {
try {
localStorage.setItem(KEY, JSON.stringify(value));
} catch {
/* ignore */
}
},
{ deep: true },
);
});