package ui import ( "git.flowmade.one/flowmade-one/iris/internal/element" "git.flowmade.one/flowmade-one/iris/reactive" ) // Router interface to avoid import cycle type Router interface { GetCurrentView() View } // NewAppWithRouter creates a new app with navigation support func NewAppWithRouter(router Router) { app := NewView() app.e.Grid() app.MinHeight("100vh") // Create a reactive view that updates when routes change reactive.NewEffect(func() { currentView := router.GetCurrentView() // Clear the app and add the current view // Note: In a production implementation, we'd want better DOM diffing app.e.Set("innerHTML", "") app.Child(currentView) }) element.Mount(app.e) }