mattermost-mobile/app/components/sidebars/main/main_sidebar.android.js
Daniel Espino García 4c8594d330
Add linter rules for import order and type member delimiters (#5514)
* Add linter rules for import order and type member delimiters

* Remove unneeded group

* Group all app/* imports before the internal imports

* Move app/ imports before parent imports

* Separate @node_modules imports into a different group

* Substitute app paths by aliases

* Fix @node_modules import order and add test related modules

* Add aliases for types and test, and group import types
2021-07-23 11:06:04 +02:00

92 lines
2.4 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import {IntlProvider} from 'react-intl';
import {Dimensions, Keyboard} from 'react-native';
import {closeMainSideMenu, enableMainSideMenu} from '@actions/navigation';
import {NavigationTypes} from '@constants';
import {getTranslations} from '@i18n';
import EventEmitter from '@mm-redux/utils/event_emitter';
import MainSidebarBase from './main_sidebar_base';
export default class MainSidebarAndroid extends MainSidebarBase {
constructor(props) {
super(props);
this.state = {
deviceWidth: Dimensions.get('window').width,
opened: false,
searching: false,
};
}
componentDidMount() {
super.componentDidMount();
EventEmitter.on(NavigationTypes.MAIN_SIDEBAR_DID_CLOSE, this.handleSidebarDidClose);
EventEmitter.on(NavigationTypes.MAIN_SIDEBAR_DID_OPEN, this.handleSidebarDidOpen);
}
componentWillUnmount() {
super.componentWillUnmount();
EventEmitter.off(NavigationTypes.MAIN_SIDEBAR_DID_CLOSE, this.handleSidebarDidClose);
EventEmitter.off(NavigationTypes.MAIN_SIDEBAR_DID_OPEN, this.handleSidebarDidOpen);
}
closeMainSidebar = () => {
closeMainSideMenu();
};
handleDimensions = ({window}) => {
if (this.mounted) {
this.setState({deviceWidth: window.width});
}
};
handleSidebarDidClose = () => {
this.setState({searching: false, opened: false}, () => {
enableMainSideMenu(true, false);
this.resetDrawer(true);
Keyboard.dismiss();
});
};
handleSidebarDidOpen = () => {
this.setState({opened: true});
}
onPageSelected = (index) => {
this.swiperIndex = index;
if (this.state.opened) {
enableMainSideMenu(index !== 0, true);
}
};
setProviderRef = (ref) => {
this.providerRef = ref;
}
render() {
const locale = this.props.locale;
if (!locale) {
return null;
}
return (
<IntlProvider
key={locale}
locale={locale}
ref={this.setProviderRef}
messages={getTranslations(locale)}
>
{this.renderNavigationView(this.state.deviceWidth)}
</IntlProvider>
);
}
}