Skip to content

Notifiers feature - #679

Open
busslina wants to merge 27 commits into
slovnicki:masterfrom
busslina:notifiers-feature
Open

Notifiers feature#679
busslina wants to merge 27 commits into
slovnicki:masterfrom
busslina:notifiers-feature

Conversation

@busslina

@busslina busslina commented Sep 20, 2024

Copy link
Copy Markdown
Contributor

This changes introduces two new related features:

  • Current pinnacle page info notifications
  • Current pages state notifications

Pinnacle page: The top level page on a beam stack.

Motivation:

In order to understand this changes I will explain my use case: I have a top level router which handles all the routes and I have three child sibling routers:

  • Header router
  • Screen router
  • Footer router

Why having those routers? Because I need to stack some floating layers on top of each (header, screen and footer), and these floating layers must survive (live more than) the routes & beams stacks. This is the reason to have the first feature. It's an optional object passed in the page creation (notified on pinnacle page change) that, in my case, can help to customize those floating layers based on the current visible page (pinnacle page).

The second feature is more obvious: To be able to optionally notify every page on every stack state change (E.G. page position in the stack) in a push way instead of the more trickier way of listening router changes and compare url path. This is done by passing an optional notifier in the page creation.

@busslina

Copy link
Copy Markdown
Contributor Author

Output demo:
imagen
imagen
imagen

@slovnicki

Copy link
Copy Markdown
Owner

Hey @busslina
thank for the PR 🙏

it seems interesting, but it will take me some time to inpect it.

@busslina

Copy link
Copy Markdown
Contributor Author

Yeah, works great but also could be a mess as is not easy for me to integrate others code that I don't know very well. BTW I just started my own routing library. If I achieve something I let you know :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants