summaryrefslogtreecommitdiff
path: root/widget/Button.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'widget/Button.tsx')
-rw-r--r--widget/Button.tsx34
1 files changed, 34 insertions, 0 deletions
diff --git a/widget/Button.tsx b/widget/Button.tsx
new file mode 100644
index 0000000..abc24ca
--- /dev/null
+++ b/widget/Button.tsx
@@ -0,0 +1,34 @@
+import { Variable, bind } from "astal"
+
+type Props = {
+ p: string
+ child?: JSX.Element
+ children?: Array<JSX.Element>
+}
+
+export default function MyButton({p, child, children}: Props) {
+ const count = Variable(0)
+ const labels = [p +"1", p +"2"]
+
+ if (child) {
+ console.log(child.label)
+ }
+
+ function increment() {
+ count.set(count.get() + 1)
+ }
+
+ function handleClick(self, ...args) {
+ console.log(self, "was clicked")
+ }
+ return <box>
+ {labels.map(label => (
+ <button onClick={handleClick}>
+ <label label={label}></label>
+ </button>
+ ))}
+ <button onClick={increment}>
+ <label label={bind(count).as(num => num.toString())}></label>
+ </button>
+ </box>
+}