mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-23 15:09:33 +01:00
fix gestures on ios
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import 'react-native-gesture-handler'
|
||||
import {AppRegistry} from 'react-native';
|
||||
import App from './App';
|
||||
import {name as appName} from './app.json';
|
||||
|
||||
@@ -78,9 +78,10 @@ let updatedDimensions = {
|
||||
|
||||
let currentScroll = 0;
|
||||
let startLocation = 0;
|
||||
|
||||
let startLocationX = 0;
|
||||
const _responder = (e) => {
|
||||
startLocation = e.nativeEvent.pageY;
|
||||
startLocationX = e.nativeEvent.pageX
|
||||
_handleTouch();
|
||||
return false;
|
||||
};
|
||||
@@ -95,13 +96,21 @@ const _handleTouch = () => {
|
||||
if (currentScroll === 0 || currentScroll === 1) {
|
||||
tabBarRef.current?.setScrollEnabled(false);
|
||||
}
|
||||
}else
|
||||
if (currentTab === 0 && startLocationX < (updatedDimensions.width*0.75)) {
|
||||
console.log("here it is here");
|
||||
if (currentScroll === 0 || currentScroll === 1) {
|
||||
tabBarRef.current?.setScrollEnabled(false);
|
||||
}
|
||||
} else {
|
||||
console.log("blocking");
|
||||
tabBarRef.current?.setScrollEnabled(true);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const _onTouchEnd = (e) => {
|
||||
console.log("touch ended");
|
||||
startLocation = 0;
|
||||
tabBarRef.current?.setScrollEnabled(true);
|
||||
};
|
||||
@@ -215,7 +224,7 @@ const AppStack = React.memo(
|
||||
height: '100%',
|
||||
backgroundColor: colors.bg,
|
||||
}}
|
||||
onMoveShouldSetResponder={_moveResponder}
|
||||
onMoveShouldSetResponderCapture={_moveResponder}
|
||||
onTouchEnd={_onTouchEnd}
|
||||
onStartShouldSetResponder={_responder}>
|
||||
{mode && (
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import {createDrawerNavigator} from '@react-navigation/drawer';
|
||||
import {NavigationContainer} from '@react-navigation/native';
|
||||
import * as React from 'react';
|
||||
import {State} from 'react-native-gesture-handler';
|
||||
import {Menu} from '../components/Menu';
|
||||
import {useTracked} from '../provider';
|
||||
import {eSubscribeEvent, eUnSubscribeEvent} from '../services/EventManager';
|
||||
import {eCloseSideMenu, eOpenSideMenu} from '../utils/Events';
|
||||
import {sideMenuRef} from '../utils/Refs';
|
||||
import { sleep } from '../utils/TimeUtils';
|
||||
import {sideMenuRef, tabBarRef} from '../utils/Refs';
|
||||
import {sleep} from '../utils/TimeUtils';
|
||||
import {NavigatorStack} from './NavigatorStack';
|
||||
|
||||
const Drawer = createDrawerNavigator();
|
||||
@@ -18,11 +19,10 @@ export const NavigationStack = ({component = NavigatorStack}) => {
|
||||
const [initRender, setInitRender] = React.useState(true);
|
||||
|
||||
React.useEffect(() => {
|
||||
console.log("rendering drawer");
|
||||
console.log('rendering drawer');
|
||||
sleep(1000).then(() => {
|
||||
setInitRender(false);
|
||||
})
|
||||
|
||||
});
|
||||
}, []);
|
||||
|
||||
const setGestureDisabled = () => {
|
||||
@@ -42,16 +42,33 @@ export const NavigationStack = ({component = NavigatorStack}) => {
|
||||
};
|
||||
}, []);
|
||||
|
||||
const _onStateChange = (e) => {
|
||||
if (e.history.findIndex((o) => o.type === 'drawer') === -1) {
|
||||
tabBarRef.current?.setScrollEnabled(true);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<NavigationContainer ref={sideMenuRef}>
|
||||
<NavigationContainer onStateChange={_onStateChange} ref={sideMenuRef}>
|
||||
<Drawer.Navigator
|
||||
gestureHandlerProps={{
|
||||
onHandlerStateChange: (e) => {
|
||||
let eventState = e.nativeEvent.state;
|
||||
if (eventState !== State.ACTIVE || eventState !== State.BEGAN) {
|
||||
let state = sideMenuRef.current.getRootState();
|
||||
if (state.history.findIndex((o) => o.type === 'drawer') === -1) {
|
||||
tabBarRef.current?.setScrollEnabled(true);
|
||||
}
|
||||
}
|
||||
},
|
||||
}}
|
||||
screenOptions={{
|
||||
swipeEnabled: locked || deviceMode !== 'mobile' ? false : true,
|
||||
gestureEnabled: locked || deviceMode !== 'mobile' ? false : true,
|
||||
}}
|
||||
drawerStyle={{
|
||||
width: initRender ? 0 : deviceMode !== 'mobile' ? 0 : '65%',
|
||||
height:initRender? 0 : null,
|
||||
height: initRender ? 0 : null,
|
||||
borderRightWidth: 0,
|
||||
}}
|
||||
edgeWidth={200}
|
||||
|
||||
Reference in New Issue
Block a user