-
Notifications
You must be signed in to change notification settings - Fork 220
Browser Back Button not working #451
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
Comments
@manfredsteyer wonder if you can comment on this issue? |
This issue is long standing. I've raised a PR for this #424 |
Can we get your help here please ? @manfredsteyer |
Have you figured a workaround for this? I have raised this issue for a year now here and it's not being looked at, I've even raised a PR as well with a suggested fix but still nothing has been done so looking for options now. |
No have not got a fix.
David M. Rhodes / Senior Software Engineer
<https://www.linkedin.com/in/david-m-rhodes>
…On Wed, Jun 12, 2024 at 9:38 PM RajathVenkatesh ***@***.***> wrote:
@davidmrhodes <https://github.com/davidmrhodes>
Have you figured a workaround for this?
I have raised this issue for a year now here and it's not being looked at,
I've even raised a PR as well with a suggested fix but still nothing has
been done so looking for options now.
—
Reply to this email directly, view it on GitHub
<#451 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AF6PDXFVVULCWLFKYVUIHO3ZHEH47AVCNFSM6AAAAABCQWQBJGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRUGMYDAMBYGM>
.
You are receiving this because you were mentioned.Message ID:
***@***.***
com>
|
@manfredsteyer Can you please comment on this? |
We are facing the same issue, it would seem it has not been resolved? Is there a problem with the PR submitted beforehand that we can help fix, or any other way we can help on fixing this issue? |
We found a way to bypass this issue on our solution. bootstrap(RootModule, {
production: true,
appType: '' as unknown as AppType, // set appType as anything but microfrontend or shell (only on remotes)
}); Then, inside the app.component.ts, we do the following: export class AppComponent implements OnInit, OnDestroy {
private readonly router = inject(Router);
private readonly handlePopState = () => {
this.router.navigateByUrl(\`${location.pathname.substring(1)}${location.search}\`).catch((error) => {
// there is an issue that it raises an error as it tries to go to a url of another webcomponent, but it appears to not affect anything, as the other one has this implementation as well and resolves when it gets there, so we decided to suppress the error for now
});
};
ngOnInit(): void {
this.router.navigateByUrl(`${location.pathname.substring(1)}${location.search}`);
window.addEventListener('popstate', this.handlePopState);
}
ngOnDestroy(): void {
window.removeEventListener('popstate', this.handlePopState);
}
} That way it will not affect other mfes when it changes route, and will safely dispose of the event listener. |
I am have problems getting the browser back and forward button working in and MFE. I think there is a bug in the
following function in this file:
https://github.com/angular-architects/module-federation-plugin/blob/main/libs/mf-tools/src/lib/web-components/router-utils.ts
export function connectRouter(router: Router, useHash = false): void {
let url: string;
if (!useHash) {
url =
${location.pathname.substring(1)}${location.search}
;router.navigateByUrl(url);
window.addEventListener('popstate', () => {
router.navigateByUrl(url);
});
} else {
url =
${location.hash.substring(1)}${location.search}
;router.navigateByUrl(url);
window.addEventListener('hashchange', () => {
router.navigateByUrl(url);
});
}
}
When I change it to this:
export function connectRouter(router: Router, useHash = false): void {
}
Subtle change but url should be recalculated in the addEventListener.
I think this change would better match with the code in the article:
https://www.angulararchitects.io/en/blog/multi-framework-and-version-micro-frontends-with-module-federation-the-good-the-bad-the-ugly/ under the section "Several Routers must Work Together"
The text was updated successfully, but these errors were encountered: