summaryrefslogtreecommitdiff
path: root/examples/server-islands/src/cart.ts
blob: 355074a38c3b2e61569d5bf65a94848b4bfbc8c4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

const channel = new MessageChannel();

function onNewCartItem(cb: (m: any) => void) {
	let onMessage = (ev: MessageEvent) => {
		cb(ev.data);
	};
	channel.port2.addEventListener('message', onMessage);
	channel.port2.start();
	return () => channel.port2.removeEventListener('message', onMessage);
}

function addToCart(item: any) {
	channel.port1.postMessage(item);
}

export {
	onNewCartItem,
	addToCart
}