summaryrefslogtreecommitdiff
path: root/examples/framework-preact/src
diff options
context:
space:
mode:
Diffstat (limited to 'examples/framework-preact/src')
-rw-r--r--examples/framework-preact/src/components/Counter.tsx8
-rw-r--r--examples/framework-preact/src/pages/index.astro12
2 files changed, 13 insertions, 7 deletions
diff --git a/examples/framework-preact/src/components/Counter.tsx b/examples/framework-preact/src/components/Counter.tsx
index 61a9f9d5a..5d702fb42 100644
--- a/examples/framework-preact/src/components/Counter.tsx
+++ b/examples/framework-preact/src/components/Counter.tsx
@@ -1,11 +1,9 @@
import { h, Fragment } from 'preact';
-import { useState } from 'preact/hooks';
import './Counter.css';
-export default function Counter({ children }) {
- const [count, setCount] = useState(0);
- const add = () => setCount((i) => i + 1);
- const subtract = () => setCount((i) => i - 1);
+export default function Counter({ children, count }) {
+ const add = () => count.value++;
+ const subtract = () => count.value--;
return (
<>
diff --git a/examples/framework-preact/src/pages/index.astro b/examples/framework-preact/src/pages/index.astro
index a6565f6c1..b37295d7b 100644
--- a/examples/framework-preact/src/pages/index.astro
+++ b/examples/framework-preact/src/pages/index.astro
@@ -2,8 +2,12 @@
// Component Imports
import Counter from '../components/Counter';
+import { signal } from '@preact/signals';
+
// Full Astro Component Syntax:
// https://docs.astro.build/core-concepts/astro-components/
+
+const count = signal(0);
---
<html lang="en">
@@ -25,8 +29,12 @@ import Counter from '../components/Counter';
</head>
<body>
<main>
- <Counter client:visible>
- <h1>Hello, Preact!</h1>
+ <Counter count={count} client:visible>
+ <h1>Hello, Preact 1!</h1>
+ </Counter>
+
+ <Counter count={count} client:visible>
+ <h1>Hello, Preact 2!</h1>
</Counter>
</main>
</body>