Skip to content

Commit

Permalink
Node manager (#903)
Browse files Browse the repository at this point in the history
* node manager declaration

* mount text

* remove node manager dismountText

* node manager can update

* node manager update text

* updade node manager doc

* mount html element

* node manager resolve url

* Update node_test.go

* node manager mount html attributes

* node manager mount html event handler

* test mount event handler

* node manager make context

* Update html.go

* node manager dismount html element

* html element setters to return the element

* node manager updateHTMLAttributes

* node manager update html event handlers

* node manage update html children

* Update node_test.go

* unexport Depth()

* node manager mount component partial implementation

* node manager component mount

* improve node manager mount test coverage

* Update node_test.go

* Update node.go

* node manager dismount component

* node manager update component

* can update value tests

* node manager mount raw html

* node manager dismount raw html

* node manager update raw html

* node manager notify component update on html events

* node manager NotifyComponentEvent

* refactor node manager to use context

* use function to get page in node context

* enginex navigate and load

* enginex url tests

* update manager

* enginex start implementation

* fix enginex context

* implement more node context methods

* browser app updatble

* Update browser.go

* comple browser init

* Update enginex.go

* refactor actions

* enginex start testing

* update context documentation

* add notifications to node context

* state manage implementation part1

* state manager broadcast

* state manager observer and get unit tests

* state manager test  set partial tests

* state manager remaining tests

* fix doc site

* cleanup

* node manage encode text

* node manage encode raw

* node manager encode component

* node manager encode html

* update node manager doc

* Update node.go

* node manage encode test

* enginex to load component intro body first child only

* change loading

* enginex root

* refactor node manager encode

* engine x encode

* fix set state

* context to be a single structure

* update context

* state manager delete

* Update context.go

* fix on anchor click

* fix fragment navigation

* fix js loading

* fix node manager foreach updatable component

* fix action post

* Update node.go

* update default rate

* Update app.go

* Update app.go

* revert oninit and prerender deprecation

* Update context.go

* remove emit back

* cleanup

* add back benchmarks

* add generated unit test

* add unit test to gen html

* fix context defer and add unit tests

* refactor testing

* refactor testing

* refactor HTMLString

* cleanup
  • Loading branch information
maxence-charriere committed Nov 9, 2023
1 parent 0b57931 commit 9340c1f
Show file tree
Hide file tree
Showing 83 changed files with 20,703 additions and 20,728 deletions.
4 changes: 0 additions & 4 deletions docs/src/actions-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newActionPage() *actionPage {
return &actionPage{}
}

func (p *actionPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *actionPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/architecture-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newArchitecturePage() *architecturePage {
return &architecturePage{}
}

func (p *architecturePage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *architecturePage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/components-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newComponentsPage() *componentsPage {
return &componentsPage{}
}

func (p *componentsPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *componentsPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/concurrency-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newConcurrencyPage() *concurrencyPage {
return &concurrencyPage{}
}

func (p *concurrencyPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *concurrencyPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/declarative-syntax-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newDeclarativeSyntaxPage() *declarativeSyntaxPage {
return &declarativeSyntaxPage{}
}

func (p *declarativeSyntaxPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *declarativeSyntaxPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/getting-started-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newGettingStartedPage() *gettingStartedPage {
return &gettingStartedPage{}
}

func (p *gettingStartedPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *gettingStartedPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/github-deploy-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newGithubDeployPage() *githubDeployPage {
return &githubDeployPage{}
}

func (p *githubDeployPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *githubDeployPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/home-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ func newHomePage() *homePage {
return &homePage{}
}

func (p *homePage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *homePage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/install-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newInstallPage() *installPage {
return &installPage{}
}

func (p *installPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *installPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/js-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newJSPage() *jsPage {
return &jsPage{}
}

func (p *jsPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *jsPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/lifecycle-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newLifecyclePage() *lifecyclePage {
return &lifecyclePage{}
}

func (p *lifecyclePage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *lifecyclePage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
46 changes: 23 additions & 23 deletions docs/src/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,29 +49,29 @@ func main() {
ui.BlockPadding = 18
analytics.Add(analytics.NewGoogleAnalytics())

app.Route("/", newHomePage())
app.Route("/getting-started", newGettingStartedPage())
app.Route("/architecture", newArchitecturePage())
app.Route("/reference", newReferencePage())

app.Route("/components", newComponentsPage())
app.Route("/declarative-syntax", newDeclarativeSyntaxPage())
app.Route("/routing", newRoutingPage())
app.Route("/static-resources", newStaticResourcePage())
app.Route("/js", newJSPage())
app.Route("/concurrency", newConcurrencyPage())
app.Route("/seo", newSEOPage())
app.Route("/lifecycle", newLifecyclePage())
app.Route("/install", newInstallPage())
app.Route("/testing", newTestingPage())
app.Route("/actions", newActionPage())
app.Route("/states", newStatesPage())
app.Route("/notifications", newNotificationsPage())

app.Route("/migrate", newMigratePage())
app.Route("/github-deploy", newGithubDeployPage())

app.Route("/privacy-policy", newPrivacyPolicyPage())
app.Route("/", app.NewZeroComponentFactory(newHomePage()))
app.Route("/getting-started", app.NewZeroComponentFactory(newGettingStartedPage()))
app.Route("/architecture", app.NewZeroComponentFactory(newArchitecturePage()))
app.Route("/reference", app.NewZeroComponentFactory(newReferencePage()))

app.Route("/components", app.NewZeroComponentFactory(newComponentsPage()))
app.Route("/declarative-syntax", app.NewZeroComponentFactory(newDeclarativeSyntaxPage()))
app.Route("/routing", app.NewZeroComponentFactory(newRoutingPage()))
app.Route("/static-resources", app.NewZeroComponentFactory(newStaticResourcePage()))
app.Route("/js", app.NewZeroComponentFactory(newJSPage()))
app.Route("/concurrency", app.NewZeroComponentFactory(newConcurrencyPage()))
app.Route("/seo", app.NewZeroComponentFactory(newSEOPage()))
app.Route("/lifecycle", app.NewZeroComponentFactory(newLifecyclePage()))
app.Route("/install", app.NewZeroComponentFactory(newInstallPage()))
app.Route("/testing", app.NewZeroComponentFactory(newTestingPage()))
app.Route("/actions", app.NewZeroComponentFactory(newActionPage()))
app.Route("/states", app.NewZeroComponentFactory(newStatesPage()))
app.Route("/notifications", app.NewZeroComponentFactory(newNotificationsPage()))

app.Route("/migrate", app.NewZeroComponentFactory(newMigratePage()))
app.Route("/github-deploy", app.NewZeroComponentFactory(newGithubDeployPage()))

app.Route("/privacy-policy", app.NewZeroComponentFactory(newPrivacyPolicyPage()))

app.Handle(installApp, handleAppInstall)
app.Handle(updateApp, handleAppUpdate)
Expand Down
17 changes: 6 additions & 11 deletions docs/src/markdown-doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,6 @@ func (d *remoteMarkdownDoc) Src(v string) *remoteMarkdownDoc {
return d
}

func (d *remoteMarkdownDoc) OnPreRender(ctx app.Context) {
d.load(ctx)
}

func (d *remoteMarkdownDoc) OnMount(ctx app.Context) {
d.load(ctx)
}
Expand All @@ -107,14 +103,13 @@ func (d *remoteMarkdownDoc) OnUpdate(ctx app.Context) {

func (d *remoteMarkdownDoc) load(ctx app.Context) {
src := d.Isrc
ctx.ObserveState(markdownState(src)).
ctx.ObserveState(markdownState(src), &d.md).
While(func() bool {
return src == d.Isrc
}).
OnChange(func() {
ctx.Defer(scrollTo)
}).
Value(&d.md)
})

ctx.NewAction(getMarkdown, app.T("path", d.Isrc))
}
Expand All @@ -130,10 +125,10 @@ func (d *remoteMarkdownDoc) Render() app.UI {
Loading(d.md.Status == loading).
Err(d.md.Err).
Label(fmt.Sprintf("Loading %s...", filepath.Base(d.Isrc))),
app.If(d.md.Status == loaded,
newMarkdownDoc().
app.If(d.md.Status == loaded, func() app.UI {
return newMarkdownDoc().
Class("fill").
MD(d.md.Data),
).Else(),
MD(d.md.Data)
}),
)
}
8 changes: 4 additions & 4 deletions docs/src/menu.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,13 +203,13 @@ func (m *menu) Render() app.UI {

app.Div().Class("separator"),

app.If(m.appInstallable,
ui.Link().
app.If(m.appInstallable, func() app.UI {
return ui.Link().
Class(linkClass).
Icon(downloadSVG).
Label("Install").
OnClick(m.installApp),
),
OnClick(m.installApp)
}),
ui.Link().
Class(linkClass).
Icon(userLockSVG).
Expand Down
4 changes: 0 additions & 4 deletions docs/src/migrate-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newMigratePage() *migratePage {
return &migratePage{}
}

func (p *migratePage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *migratePage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/notifications-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ func newNotificationsPage() *notificationsPage {
return &notificationsPage{}
}

func (p *notificationsPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *notificationsPage) OnMount(ctx app.Context) {
p.notificationPermission = ctx.Notifications().Permission()
p.registerSubscription(ctx)
Expand Down
16 changes: 8 additions & 8 deletions docs/src/page.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ func (p *page) Render() app.UI {
newMenu().Class("fill"),
).
Index(
app.If(len(p.Iindex) != 0,
ui.Scroll().
app.If(len(p.Iindex) != 0, func() app.UI {
return ui.Scroll().
Class("fill").
HeaderHeight(headerHeight).
Content(
Expand All @@ -90,8 +90,8 @@ func (p *page) Render() app.UI {
newIndexLink().Title("Report an Issue"),
app.Div().Class("separator"),
),
),
),
)
}),
).
Content(
ui.Scroll().
Expand All @@ -105,8 +105,8 @@ func (p *page) Render() app.UI {
Right().
Middle().
Content(
app.If(p.updateAvailable,
app.Div().
app.If(p.updateAvailable, func() app.UI {
return app.Div().
Class("link-update").
Body(
ui.Link().
Expand All @@ -117,8 +117,8 @@ func (p *page) Render() app.UI {
Icon(downloadSVG).
Label("Update").
OnClick(p.updateApp),
),
),
)
}),
),
),
).
Expand Down
4 changes: 0 additions & 4 deletions docs/src/privacy-policy-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newPrivacyPolicyPage() *privacyPolicyPage {
return &privacyPolicyPage{}
}

func (p *privacyPolicyPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *privacyPolicyPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
20 changes: 7 additions & 13 deletions docs/src/reference-content.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,6 @@ func (c *referenceContent) Index(v bool) *referenceContent {
return c
}

func (c *referenceContent) OnPreRender(ctx app.Context) {
c.load(ctx)
}

func (c *referenceContent) OnMount(ctx app.Context) {
c.load(ctx)
}
Expand All @@ -48,12 +44,11 @@ func (c *referenceContent) OnNav(ctx app.Context) {
}

func (c *referenceContent) load(ctx app.Context) {
ctx.ObserveState(referenceState).
ctx.ObserveState(referenceState, &c.content).
OnChange(func() {
ctx.Defer(c.handleFragment)
ctx.Defer(c.scrollTo)
}).
Value(&c.content)
})

ctx.NewAction(getReference)
}
Expand All @@ -78,12 +73,11 @@ func (c *referenceContent) Render() app.UI {
Err(c.content.Err).
Size(loaderSize).
Spacing(loaderSpacing),

app.If(!c.Iindex && c.content.Content != "",
app.Raw(c.content.Content),
).ElseIf(c.Iindex && c.content.Index != "",
app.Raw(c.content.Index),
),
app.If(!c.Iindex && c.content.Content != "", func() app.UI {
return app.Raw(c.content.Content)
}).ElseIf(c.Iindex && c.content.Index != "", func() app.UI {
return app.Raw(c.content.Index)
}),
app.Div().Text(c.content.Err),
)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/reference-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newReferencePage() *referencePage {
return &referencePage{}
}

func (p *referencePage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *referencePage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/routing-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newRoutingPage() *routingPage {
return &routingPage{}
}

func (p *routingPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *routingPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/seo-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newSEOPage() *seoPage {
return &seoPage{}
}

func (p *seoPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *seoPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
4 changes: 0 additions & 4 deletions docs/src/states-page.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ func newStatesPage() *statesPage {
return &statesPage{}
}

func (p *statesPage) OnPreRender(ctx app.Context) {
p.initPage(ctx)
}

func (p *statesPage) OnNav(ctx app.Context) {
p.initPage(ctx)
}
Expand Down
Loading

0 comments on commit 9340c1f

Please sign in to comment.