aboutsummaryrefslogtreecommitdiff
path: root/src/components/CartFlyout.tsx
blob: 98fd8cbfb319895d0f5cbd2e0853b2e7ab211f32 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { useStore } from '@nanostores/preact';
import { cartItems, isCartOpen } from '../cartStore';
import styles from './CartFlyout.module.css';

export default function CartFlyout() {
	const $isCartOpen = useStore(isCartOpen);
	const $cartItems = useStore(cartItems);

	return (
		<aside hidden={!$isCartOpen} className={styles.container}>
			{Object.values($cartItems).length ? (
				<ul className={styles.list} role="list">
					{Object.values($cartItems).map((cartItem) => (
						<li className={styles.listItem}>
							<img className={styles.listItemImg} src={cartItem.imageSrc} alt={cartItem.name} />
							<div>
								<h3>{cartItem.name}</h3>
								<p>Quantity: {cartItem.quantity}</p>
							</div>
						</li>
					))}
				</ul>
			) : (
				<p>Your cart is empty!</p>
			)}
		</aside>
	);
}