Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notifiers feature #679

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open

Conversation

busslina
Copy link
Contributor

@busslina busslina commented Sep 20, 2024

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
Contributor Author

Output demo:
imagen
imagen
imagen

@slovnicki
Copy link
Owner

Hey @busslina
thank for the PR 🙏

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

@busslina
Copy link
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