From ba19046bc8a4a253900f838af8a69837306a020f Mon Sep 17 00:00:00 2001 From: Shubham Agrawal <58412969+shubham1206agra@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:03:38 +0530 Subject: [PATCH] Revert "fix confirmation button jump" --- src/App.tsx | 2 -- src/components/Form/FormProvider.tsx | 8 +----- src/components/InputBlurContext/index.tsx | 32 ----------------------- src/components/ScreenWrapper.tsx | 26 +----------------- 4 files changed, 2 insertions(+), 66 deletions(-) delete mode 100644 src/components/InputBlurContext/index.tsx diff --git a/src/App.tsx b/src/App.tsx index 420901e4999e..40028a10a2da 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -14,7 +14,6 @@ import CustomStatusBarAndBackgroundContextProvider from './components/CustomStat import ErrorBoundary from './components/ErrorBoundary'; import HTMLEngineProvider from './components/HTMLEngineProvider'; import InitialURLContextProvider from './components/InitialURLContextProvider'; -import {InputBlurContextProvider} from './components/InputBlurContext'; import KeyboardProvider from './components/KeyboardProvider'; import {LocaleContextProvider} from './components/LocaleContextProvider'; import OnyxProvider from './components/OnyxProvider'; @@ -99,7 +98,6 @@ function App({url}: AppProps) { KeyboardProvider, SearchRouterContextProvider, ProductTrainingContextProvider, - InputBlurContextProvider, ]} > diff --git a/src/components/Form/FormProvider.tsx b/src/components/Form/FormProvider.tsx index e135fddd93ea..2731d6bd1f98 100644 --- a/src/components/Form/FormProvider.tsx +++ b/src/components/Form/FormProvider.tsx @@ -4,10 +4,8 @@ import type {ForwardedRef, MutableRefObject, ReactNode, RefAttributes} from 'rea import React, {createRef, forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'; import type {NativeSyntheticEvent, StyleProp, TextInputSubmitEditingEventData, ViewStyle} from 'react-native'; import {useOnyx} from 'react-native-onyx'; -import {useInputBlurContext} from '@components/InputBlurContext'; import useDebounceNonReactive from '@hooks/useDebounceNonReactive'; import useLocalize from '@hooks/useLocalize'; -import * as Browser from '@libs/Browser'; import * as ValidationUtils from '@libs/ValidationUtils'; import Visibility from '@libs/Visibility'; import * as FormActions from '@userActions/FormActions'; @@ -97,7 +95,6 @@ function FormProvider( const [inputValues, setInputValues] = useState
(() => ({...draftValues})); const [errors, setErrors] = useState({}); const hasServerError = useMemo(() => !!formState && !isEmptyObject(formState?.errors), [formState]); - const {setIsBlurred} = useInputBlurContext(); const onValidate = useCallback( (values: FormOnyxValues, shouldClearServerError = true) => { @@ -374,9 +371,6 @@ function FormProvider( }, VALIDATE_DELAY); } inputProps.onBlur?.(event); - if (Browser.isSafari()) { - setIsBlurred(true); - } }, onInputChange: (value, key) => { const inputKey = key ?? inputID; @@ -399,7 +393,7 @@ function FormProvider( }, }; }, - [draftValues, inputValues, formState?.errorFields, errors, submit, setTouchedInput, shouldValidateOnBlur, onValidate, hasServerError, setIsBlurred, formID, shouldValidateOnChange], + [draftValues, inputValues, formState?.errorFields, errors, submit, setTouchedInput, shouldValidateOnBlur, onValidate, hasServerError, formID, shouldValidateOnChange], ); const value = useMemo(() => ({registerInput}), [registerInput]); diff --git a/src/components/InputBlurContext/index.tsx b/src/components/InputBlurContext/index.tsx deleted file mode 100644 index 949c7029d849..000000000000 --- a/src/components/InputBlurContext/index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import React, {useContext, useMemo, useState} from 'react'; -import type ChildrenProps from '@src/types/utils/ChildrenProps'; - -type InputBlurContextType = { - isBlurred: boolean; // Boolean state to track blur - setIsBlurred: React.Dispatch>; // Function to update the state -}; - -const InputBlurContext = React.createContext({ - isBlurred: true, - setIsBlurred: () => {}, -}); - -function InputBlurContextProvider({children}: ChildrenProps) { - const [isBlurred, setIsBlurred] = useState(false); - - const contextValue = useMemo( - () => ({ - isBlurred, - setIsBlurred, - }), - [isBlurred], - ); - - return {children}; -} - -function useInputBlurContext() { - return useContext(InputBlurContext); -} - -export {InputBlurContext, useInputBlurContext, InputBlurContextProvider}; diff --git a/src/components/ScreenWrapper.tsx b/src/components/ScreenWrapper.tsx index 9833d19fc865..464509b0a947 100644 --- a/src/components/ScreenWrapper.tsx +++ b/src/components/ScreenWrapper.tsx @@ -15,7 +15,6 @@ import useWindowDimensions from '@hooks/useWindowDimensions'; import * as Browser from '@libs/Browser'; import type {PlatformStackNavigationProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {AuthScreensParamList, RootStackParamList} from '@libs/Navigation/types'; -import addViewportResizeListener from '@libs/VisualViewport'; import toggleTestToolsModal from '@userActions/TestTool'; import CONST from '@src/CONST'; import CustomDevMenu from './CustomDevMenu'; @@ -23,7 +22,6 @@ import FocusTrapForScreens from './FocusTrap/FocusTrapForScreen'; import type FocusTrapForScreenProps from './FocusTrap/FocusTrapForScreen/FocusTrapProps'; import HeaderGap from './HeaderGap'; import ImportedStateIndicator from './ImportedStateIndicator'; -import {useInputBlurContext} from './InputBlurContext'; import KeyboardAvoidingView from './KeyboardAvoidingView'; import ModalContext from './Modal/ModalContext'; import OfflineIndicator from './OfflineIndicator'; @@ -167,7 +165,6 @@ function ScreenWrapper( const shouldReturnToOldDot = useMemo(() => { return !!route?.params && 'singleNewDotEntry' in route.params && route.params.singleNewDotEntry === 'true'; }, [route?.params]); - const {isBlurred, setIsBlurred} = useInputBlurContext(); UNSTABLE_usePreventRemove(shouldReturnToOldDot, () => { NativeModules.HybridAppModule?.closeReactNativeApp(false, false); @@ -192,27 +189,6 @@ function ScreenWrapper( }), ).current; - useEffect(() => { - /** - * Handler to manage viewport resize events specific to Safari. - * Disables the blur state when Safari is detected. - */ - const handleViewportResize = () => { - if (!Browser.isSafari()) { - return; // Exit early if not Safari - } - setIsBlurred(false); // Disable blur state for Safari - }; - - // Add the viewport resize listener - const removeResizeListener = addViewportResizeListener(handleViewportResize); - - // Cleanup function to remove the listener - return () => { - removeResizeListener(); - }; - }, [setIsBlurred]); - useEffect(() => { // On iOS, the transitionEnd event doesn't trigger some times. As such, we need to set a timeout const timeout = setTimeout(() => { @@ -295,7 +271,7 @@ function ScreenWrapper( {...keyboardDismissPanResponder.panHandlers} >