popState not triggered when navigating to custom content list view page

Our app has registered a general page as the list view component of a custom content type that supports space containers. This causes the general page to be listed in the “Apps” section of the Confluence space sidebar.

Inside the general page, we use AP.history. Previously, when users navigated to a sub-screen of our general page, they could navigate back to the front page by clicking our app item in the space sidebar. This link leads to the general page without any #! location hash, causing the page to reload, but at least it worked.

This behaviour seems to have changed. The link in the sidebar still leads to the same URL, but clicking it does not reload the page. Instead, the location hash is removed from the browser URL, but no popState event is triggered in the iframe, and also AP.history.getState() still returns the outdated location hash. This means that users unexpectedly cannot navigate back to the front page of our general page by clicking this item, and also the browser URL does not represent the current screen anymore.

Hi @candid,

thanks for reporting the issue. We recently changed the way how custom content list view component is rendered for Connect. As you noticed already Confluence is no longer reload a page when a user navigates between content and apps in the Navigation panel.

This change caused a regression that you mentioned. The former behavior forced the page to reload and wiped a history state. With a new approach, it’s no longer happening, but the piece that informs apps that history is changed is also missing.

I have created a public ticket to track the progress of this bug.

Let me know if you have any other questions. Thank you.

Thank you for the quick and detailed response!

Hi @candid we rolled out the fix. We apologize for the inconvenience caused by this issue.

Thanks, that’s great!