stew/* Packages / 14.7
⌨️ stew/event
The stew/event package allows you to listen to global events (keyboard, window, network) that are not attached to a specific DOM element.
Keyboard Events
Listen for key presses at the global window level. Ideal for keyboard shortcuts or closing modals.
<goscript client>
import "stew/event"
import "stew/io"
event.OnKeyDown("Enter", func() {
io.Alert("You pressed Enter!")
})
event.OnKeyUp("Shift", func() {
Console.Log("Shift released")
})
event.OnKeyDown("Escape", func() {
closeModal()
})
</goscript>
Window and Browser State
Track window resizing or the user's network connection status.
<goscript client>
import "stew/event"
event.OnResize(func(w, h int) {
Console.Log("New size:", w, "x", h)
})
event.OnOffline(func() {
ui.ToggleClass("#offline-banner", "hidden")
})
event.OnOnline(func() {
ui.AddClass("#offline-banner", "hidden")
})
</goscript>
Global Scrolling
The package allows you to track the scrolling of the entire page.
<goscript client>
import "stew/event"
event.OnScroll(func(top, left int) {
if top > 100 {
ui.AddClass("#navbar", "shadow-md")
} else {
ui.RemoveClass("#navbar", "shadow-md")
}
})
</goscript>
🔌 OnOnline & IsOnline
Use event.IsOnline() to check the current state upon loading, and OnOnline/OnOffline to react to changes in real-time.