From f99d26062807988f5e04bbd4cd7e66ee17beb3dd Mon Sep 17 00:00:00 2001 From: Mattermost Build Date: Wed, 18 Sep 2019 15:58:44 +0200 Subject: [PATCH] Force drawer to open to channel menu when new teams are added (#3269) --- .../sidebars/main/drawer_swipper/drawer_swiper.js | 6 ++++++ app/components/sidebars/main/main_sidebar.js | 1 + app/components/swiper.js | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/app/components/sidebars/main/drawer_swipper/drawer_swiper.js b/app/components/sidebars/main/drawer_swipper/drawer_swiper.js index 8edee0e6f..358a92204 100644 --- a/app/components/sidebars/main/drawer_swipper/drawer_swiper.js +++ b/app/components/sidebars/main/drawer_swipper/drawer_swiper.js @@ -52,6 +52,12 @@ export default class DrawerSwiper extends Component { } }; + scrollToInitial = () => { + if (this.swiperRef?.current) { + this.swiperRef.current.scrollToInitial(); + } + } + swiperPageSelected = (index) => { this.props.onPageSelected(index); }; diff --git a/app/components/sidebars/main/main_sidebar.js b/app/components/sidebars/main/main_sidebar.js index 0233f7a88..8ea04b391 100644 --- a/app/components/sidebars/main/main_sidebar.js +++ b/app/components/sidebars/main/main_sidebar.js @@ -338,6 +338,7 @@ export default class ChannelSidebar extends Component { if (this.drawerSwiper) { if (multipleTeams) { this.drawerSwiper.runOnLayout(); + this.drawerSwiper.scrollToInitial(); } else if (!openDrawerOffset) { this.drawerSwiper.scrollToStart(); } diff --git a/app/components/swiper.js b/app/components/swiper.js index 4764839fe..6e69bc0a8 100644 --- a/app/components/swiper.js +++ b/app/components/swiper.js @@ -107,6 +107,14 @@ export default class Swiper extends PureComponent { }); }; + scrollToInitial = () => { + setTimeout(() => { + if (this.scrollView) { + this.scrollView.scrollTo({x: this.props.width * this.props.initialPage, animated: false}); + } + }, 0); + }; + refScrollView = (view) => { this.scrollView = view; };