From d7ab9292fb4fe0612729c2a26a396f5935c945d0 Mon Sep 17 00:00:00 2001 From: Robin Dadswell <19610103+RobinDadswell@users.noreply.github.com> Date: Wed, 12 May 2021 12:36:20 +0100 Subject: [PATCH] Fixed: restoring scroll position when going back to index page (#6308) (cherry picked from commit 1bc52d0138c7bcb94ffce31ec05f675387612a62) Co-authored-by: ta264 --- frontend/src/Components/Link/Link.js | 16 ++++++++++++++-- .../src/Components/Page/Header/PageHeader.js | 8 +++++++- frontend/src/Components/Table/VirtualTable.js | 16 +++++++++++++--- frontend/src/Components/withScrollPosition.js | 2 +- .../Index/Overview/MovieIndexOverviews.js | 13 +++++++++++-- .../Movie/Index/Posters/MovieIndexPosters.js | 19 ++++++++++++++++--- .../src/Movie/Index/Table/MovieIndexTable.js | 3 +++ 7 files changed, 65 insertions(+), 12 deletions(-) diff --git a/frontend/src/Components/Link/Link.js b/frontend/src/Components/Link/Link.js index 6a2b99e33..e061cf9bd 100644 --- a/frontend/src/Components/Link/Link.js +++ b/frontend/src/Components/Link/Link.js @@ -38,7 +38,7 @@ class Link extends Component { const linkProps = { target }; let el = component; - if (to) { + if (to && typeof to === 'string') { if ((/\w+?:\/\//).test(to)) { el = 'a'; linkProps.href = to; @@ -53,6 +53,18 @@ class Link extends Component { linkProps.to = `${window.Radarr.urlBase}/${to.replace(/^\//, '')}`; linkProps.target = target; } + } else if (to && typeof to === 'object') { + el = RouterLink; + linkProps.target = target; + if (to.pathname.startsWith(`${window.Radarr.urlBase}/`)) { + linkProps.to = to; + } else { + const pathname = `${window.Radarr.urlBase}/${to.pathname.replace(/^\//, '')}`; + linkProps.to = { + ...to, + pathname + }; + } } if (el === 'button' || el === 'input') { @@ -83,7 +95,7 @@ class Link extends Component { Link.propTypes = { className: PropTypes.string, component: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), - to: PropTypes.string, + to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), target: PropTypes.string, isDisabled: PropTypes.bool, noRouter: PropTypes.bool, diff --git a/frontend/src/Components/Page/Header/PageHeader.js b/frontend/src/Components/Page/Header/PageHeader.js index 28b343edc..c4c5dbb58 100644 --- a/frontend/src/Components/Page/Header/PageHeader.js +++ b/frontend/src/Components/Page/Header/PageHeader.js @@ -53,7 +53,13 @@ class PageHeader extends Component { return (
- +