diff --git a/CHANGELOG.md b/CHANGELOG.md
index 13538a26d..71d24e937 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Fix channel file-search not available in mobile _community pr!_ ([#4527](https://github.com/lbryio/lbry-desktop/pull/4527))
- New Channel: Fix incorrect GUI configuration at entry _community pr!_ ([#4545](https://github.com/lbryio/lbry-desktop/pull/4545))
- Hide blocked channels in comments ([#4557](https://github.com/lbryio/lbry-desktop/pull/4557))
+- Fix sluggish Back button when navigation back to channels with lots of comments _community pr!_ ([#4576](https://github.com/lbryio/lbry-desktop/pull/4576))
## [0.47.0] - [2020-07-13]
diff --git a/ui/page/channel/view.jsx b/ui/page/channel/view.jsx
index 82c3fd2e1..885b90660 100644
--- a/ui/page/channel/view.jsx
+++ b/ui/page/channel/view.jsx
@@ -70,6 +70,7 @@ function ChannelPage(props: Props) {
const currentView = urlParams.get(PAGE_VIEW_QUERY) || undefined;
const editInUrl = urlParams.get(PAGE_VIEW_QUERY) === EDIT_PAGE;
const [editing, setEditing] = React.useState(editInUrl);
+ const [discussionWasMounted, setDiscussionWasMounted] = React.useState(false);
const { channelName } = parseURI(uri);
const { permanent_url: permanentUrl } = claim;
const claimId = claim.claim_id;
@@ -107,6 +108,12 @@ function ChannelPage(props: Props) {
goBack();
}
+ React.useEffect(() => {
+ if (currentView === DISCUSSION_PAGE) {
+ setDiscussionWasMounted(true);
+ }
+ }, [currentView]);
+
React.useEffect(() => {
if (!channelIsMine && editing) {
setEditing(false);
@@ -209,7 +216,7 @@ function ChannelPage(props: Props) {
-
+ {(discussionWasMounted || currentView === DISCUSSION_PAGE) && }