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