fix(channel): let the nav rail navigate away from a channel page
The channel page overlays the content column via channelView, which setPage didn't clear — so clicking a rail item did nothing (and the next===page early-return blocked 'Feed' when a channel was opened from the feed). setPage now clears channelView and proceeds even when the underlying page is unchanged.
This commit is contained in:
parent
50a7774588
commit
a6c4888e92
1 changed files with 5 additions and 2 deletions
|
|
@ -208,14 +208,17 @@ export default function App() {
|
|||
}
|
||||
|
||||
function setPage(next: Page) {
|
||||
if (next === page) return;
|
||||
// While a channel page is open it overlays the content column, so a nav click must close it
|
||||
// even when the underlying page is unchanged (e.g. "Feed" while a channel opened from the feed).
|
||||
if (next === page && !channelView) return;
|
||||
const go = () => {
|
||||
setChannelView(null); // leave any open channel page when navigating via the rail
|
||||
setPageState(next);
|
||||
localStorage.setItem(PAGE_KEY, next);
|
||||
// Push an in-app history entry so the browser/mouse Back button steps through pages
|
||||
// instead of leaving the app (e.g. back to the OAuth redirect). The URL stays clean —
|
||||
// the page rides in history.state, not the query string (filters never go in the URL).
|
||||
// A fresh { sfPage } (no carried-over _sub/_ov markers) so each page starts at its root.
|
||||
// A fresh { sfPage } (no carried-over _sub/_ov/_chan markers) so each page starts at its root.
|
||||
window.history.pushState({ sfPage: next }, "");
|
||||
};
|
||||
// Guard leaving the Settings page with unsaved preference changes.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue