Skip to content

Commit f384933

Browse files
authored
Merge pull request #57536 from software-mansion-labs/@BartoszGrajdek/FAB-invisible-view-fix
2 parents c2a7e36 + a9d5a33 commit f384933

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/components/Modal/BottomDockedModal/index.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import noop from 'lodash/noop';
2-
import React, {useCallback, useEffect, useMemo, useState} from 'react';
2+
import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
33
import type {ViewStyle} from 'react-native';
4-
import {BackHandler, DeviceEventEmitter, Dimensions, KeyboardAvoidingView, Modal, View} from 'react-native';
4+
import {BackHandler, DeviceEventEmitter, Dimensions, InteractionManager, KeyboardAvoidingView, Modal, View} from 'react-native';
55
import {LayoutAnimationConfig} from 'react-native-reanimated';
66
import useThemeStyles from '@hooks/useThemeStyles';
77
import getPlatform from '@libs/getPlatform';
@@ -41,6 +41,7 @@ function BottomDockedModal({
4141
const [isTransitioning, setIsTransitioning] = useState(false);
4242
const [deviceWidth, setDeviceWidth] = useState(() => Dimensions.get('window').width);
4343
const [deviceHeight, setDeviceHeight] = useState(() => Dimensions.get('window').height);
44+
const handleRef = useRef<number>();
4445

4546
const styles = useThemeStyles();
4647

@@ -108,11 +109,13 @@ function BottomDockedModal({
108109

109110
useEffect(() => {
110111
if (isVisible && !isContainerOpen && !isTransitioning) {
112+
handleRef.current = InteractionManager.createInteractionHandle();
111113
onModalWillShow();
112114

113115
setIsVisibleState(true);
114116
setIsTransitioning(true);
115117
} else if (!isVisible && isContainerOpen && !isTransitioning) {
118+
handleRef.current = InteractionManager.createInteractionHandle();
116119
onModalWillHide();
117120

118121
setIsVisibleState(false);
@@ -133,12 +136,18 @@ function BottomDockedModal({
133136
const onOpenCallBack = useCallback(() => {
134137
setIsTransitioning(false);
135138
setIsContainerOpen(true);
139+
if (handleRef.current) {
140+
InteractionManager.clearInteractionHandle(handleRef.current);
141+
}
136142
onModalShow();
137143
}, [onModalShow]);
138144

139145
const onCloseCallBack = useCallback(() => {
140146
setIsTransitioning(false);
141147
setIsContainerOpen(false);
148+
if (handleRef.current) {
149+
InteractionManager.clearInteractionHandle(handleRef.current);
150+
}
142151
if (getPlatform() !== CONST.PLATFORM.IOS) {
143152
onModalHide();
144153
}

src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,7 @@ function FloatingActionButtonAndPopover({onHideCreateMenu, onShowCreateMenu, isT
547547
fromSidebarMediumScreen={!shouldUseNarrowLayout}
548548
animationInTiming={CONST.MODAL.ANIMATION_TIMING.FAB_IN}
549549
animationOutTiming={CONST.MODAL.ANIMATION_TIMING.FAB_OUT}
550+
shouldUseNewModal
550551
menuItems={menuItems.map((item) => {
551552
return {
552553
...item,

0 commit comments

Comments
 (0)