* sort desc lastAccessAt server in security manager * do not export let binding in context/device
36 lines
1,012 B
TypeScript
36 lines
1,012 B
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import RNUtils, {type SplitViewResult} from '@mattermost/rnutils';
|
|
import React, {createContext, useEffect, useState} from 'react';
|
|
import {NativeEventEmitter} from 'react-native';
|
|
|
|
type Props = {
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
const emitter = new NativeEventEmitter(RNUtils);
|
|
|
|
let info = RNUtils.isRunningInSplitView();
|
|
|
|
export const DeviceContext = createContext(info);
|
|
const {Provider} = DeviceContext;
|
|
|
|
const DeviceInfoProvider = ({children}: Props) => {
|
|
const [deviceInfo, setDeviceInfo] = useState(info);
|
|
useEffect(() => {
|
|
const listener = emitter.addListener('SplitViewChanged', (result: SplitViewResult) => {
|
|
setDeviceInfo(result);
|
|
info = result;
|
|
});
|
|
|
|
return () => listener.remove();
|
|
}, []);
|
|
|
|
return (
|
|
<Provider value={deviceInfo}>
|
|
{children}
|
|
</Provider>);
|
|
};
|
|
|
|
export default DeviceInfoProvider;
|