summaryrefslogtreecommitdiff
path: root/examples/framework-multiple/src/components/solid/SolidCounter.tsx
blob: cb921960886c716a4a54cc896149fa93fffd3471 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/** @jsxImportSource solid-js */

import { createSignal, type JSX } from 'solid-js';

/** A counter written with Solid */
export default function SolidCounter(props: { children?: JSX.Element }) {
	const [count, setCount] = createSignal(0);
	const add = () => setCount(count() + 1);
	const subtract = () => setCount(count() - 1);

	return (
		<>
			<div id="solid" class="counter">
				<button onClick={subtract}>-</button>
				<pre>{count()}</pre>
				<button onClick={add}>+</button>
			</div>
			<div class="counter-message">{props.children}</div>
		</>
	);
}