19 lines
568 B
TypeScript
19 lines
568 B
TypeScript
import type { OrderLine, NewOrderLine } from '../shared/order-line';
|
|
|
|
export type CartItem = OrderLine;
|
|
export type NewCartItem = NewOrderLine;
|
|
|
|
export interface CartState {
|
|
items: CartItem[];
|
|
isOpen: boolean;
|
|
}
|
|
|
|
export type CartAction =
|
|
| { type: 'ADD_ITEM'; payload: NewCartItem }
|
|
| { type: 'REMOVE_ITEM'; payload: string }
|
|
| { type: 'UPDATE_QUANTITY'; payload: { id: string; quantity: number } }
|
|
| { type: 'CLEAR_CART' }
|
|
| { type: 'TOGGLE_CART' }
|
|
| { type: 'OPEN_CART' }
|
|
| { type: 'CLOSE_CART' }
|
|
| { type: 'RESTORE_ITEMS'; payload: CartItem[] }; |