forked from Ivasoft/mattermost-mobile
* Upgrade to rn 0.66.0 * Add keys to re-render post list and channel list * Finish dep updates and rn to 0.66.1 * upgrade more dependencies * Fix select_server tests
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
|
|
import {useEffect, useState} from 'react';
|
|
import {useWindowDimensions} from 'react-native';
|
|
|
|
import {DeviceTypes} from '@constants';
|
|
import mattermostManaged from '@mattermost-managed';
|
|
import EventEmitter from '@mm-redux/utils/event_emitter';
|
|
|
|
export function usePermanentSidebar() {
|
|
const [permanentSidebar, setPermanentSidebar] = useState(DeviceTypes.IS_TABLET);
|
|
|
|
useEffect(() => {
|
|
const handlePermanentSidebar = async () => {
|
|
if (DeviceTypes.IS_TABLET && this.mounted) {
|
|
const enabled = await AsyncStorage.getItem(DeviceTypes.PERMANENT_SIDEBAR_SETTINGS);
|
|
setPermanentSidebar(enabled === 'true');
|
|
}
|
|
};
|
|
|
|
handlePermanentSidebar();
|
|
|
|
EventEmitter.on(DeviceTypes.PERMANENT_SIDEBAR_SETTINGS, handlePermanentSidebar);
|
|
|
|
return () => {
|
|
EventEmitter.off(DeviceTypes.PERMANENT_SIDEBAR_SETTINGS, handlePermanentSidebar);
|
|
};
|
|
}, []);
|
|
|
|
return permanentSidebar;
|
|
}
|
|
|
|
export function useSplitView() {
|
|
const [isSplitView, setIsSplitView] = useState(false);
|
|
useWindowDimensions();
|
|
|
|
if (DeviceTypes.IS_TABLET) {
|
|
mattermostManaged.isRunningInSplitView().then((result: any) => {
|
|
setIsSplitView(Boolean(result.isSplitView));
|
|
});
|
|
}
|
|
|
|
return isSplitView;
|
|
}
|