diff --git a/examples/counter/main.go b/examples/counter/main.go new file mode 100644 index 0000000..839a95a --- /dev/null +++ b/examples/counter/main.go @@ -0,0 +1,36 @@ +//go:build js && wasm + +package main + +import ( + "fmt" + + "git.flowmade.one/flowmade-one/iris/reactive" + "git.flowmade.one/flowmade-one/iris/ui" +) + +func main() { + // Create a signal with initial value 0 + count := reactive.NewSignal(0) + + view := ui.NewView() + + // Reactive text that updates when count changes + view.Child(ui.TextFromFunction(func() string { + return fmt.Sprintf("Count: %d", count.Get()) + })) + + // Button that increments the count on click + view.Child(ui.Button(func() { + count.Set(count.Get() + 1) + }, ui.TextFromString("Increment"))) + + // Button that decrements the count on click + view.Child(ui.Button(func() { + count.Set(count.Get() - 1) + }, ui.TextFromString("Decrement"))) + + ui.NewApp(view) + + select {} +}