From b372fb29daa04d2980172bedcf13fac8a9d42c3a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Fri, 19 Sep 2025 16:19:49 +0200
Subject: [PATCH 01/29] Removed forwardRef from
 ShareTabParticipantsSelector.tsx

---
 src/components/Share/ShareTabParticipantsSelector.tsx | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/components/Share/ShareTabParticipantsSelector.tsx b/src/components/Share/ShareTabParticipantsSelector.tsx
index 4d8bee4f9cce..8c5fc99b1a1f 100644
--- a/src/components/Share/ShareTabParticipantsSelector.tsx
+++ b/src/components/Share/ShareTabParticipantsSelector.tsx
@@ -1,4 +1,4 @@
-import React, {forwardRef} from 'react';
+import React from 'react';
 import {saveUnknownUserDetails} from '@libs/actions/Share';
 import Navigation from '@libs/Navigation/Navigation';
 import MoneyRequestParticipantsSelector from '@pages/iou/request/MoneyRequestParticipantsSelector';
@@ -8,13 +8,14 @@ import type ROUTES from '@src/ROUTES';
 
 type ShareTabParticipantsSelectorProps = {
     detailsPageRouteObject: typeof ROUTES.SHARE_SUBMIT_DETAILS | typeof ROUTES.SHARE_DETAILS;
+    ref?: React.Ref<InputFocusRef>;
 };
 
 type InputFocusRef = {
     focus?: () => void;
 };
 
-function ShareTabParticipantsSelectorComponent({detailsPageRouteObject}: ShareTabParticipantsSelectorProps, ref: React.Ref<InputFocusRef>) {
+function ShareTabParticipantsSelectorComponent({detailsPageRouteObject, ref}: ShareTabParticipantsSelectorProps) {
     return (
         <MoneyRequestParticipantsSelector
             ref={ref}
@@ -40,4 +41,4 @@ function ShareTabParticipantsSelectorComponent({detailsPageRouteObject}: ShareTa
     );
 }
 
-export default forwardRef<InputFocusRef, ShareTabParticipantsSelectorProps>(ShareTabParticipantsSelectorComponent);
+export default ShareTabParticipantsSelectorComponent;

From ced3156e98d3554d6a43442f6c1e0e34368868f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Fri, 19 Sep 2025 16:53:40 +0200
Subject: [PATCH 02/29] Removed forwardRef from AmountWithoutCurrencyInput.tsx

---
 src/components/AmountWithoutCurrencyInput.tsx | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/components/AmountWithoutCurrencyInput.tsx b/src/components/AmountWithoutCurrencyInput.tsx
index a7d882ab7415..9acb5e85fb90 100644
--- a/src/components/AmountWithoutCurrencyInput.tsx
+++ b/src/components/AmountWithoutCurrencyInput.tsx
@@ -1,10 +1,9 @@
 import React, {useCallback, useMemo} from 'react';
-import type {ForwardedRef} from 'react';
 import useLocalize from '@hooks/useLocalize';
 import getAmountInputKeyboard from '@libs/getAmountInputKeyboard';
 import {handleNegativeAmountFlipping, replaceAllDigits, replaceCommasWithPeriod, stripSpacesFromAmount} from '@libs/MoneyRequestUtils';
 import TextInput from './TextInput';
-import type {BaseTextInputProps, BaseTextInputRef} from './TextInput/BaseTextInput/types';
+import type {BaseTextInputProps} from './TextInput/BaseTextInput/types';
 
 type AmountFormProps = {
     /** Amount supplied by the FormProvider */
@@ -24,8 +23,7 @@ type AmountFormProps = {
 } & Partial<BaseTextInputProps>;
 
 function AmountWithoutCurrencyInput(
-    {value: amount, shouldAllowNegative = false, inputID, name, defaultValue, accessibilityLabel, role, label, onInputChange, allowFlippingAmount, toggleNegative, ...rest}: AmountFormProps,
-    ref: ForwardedRef<BaseTextInputRef>,
+    {value: amount, shouldAllowNegative = false, inputID, name, defaultValue, accessibilityLabel, role, label, onInputChange, allowFlippingAmount, toggleNegative, ref, ...rest}: AmountFormProps,
 ) {
     const {toLocaleDigit} = useLocalize();
     const separator = useMemo(
@@ -94,4 +92,4 @@ function AmountWithoutCurrencyInput(
 
 AmountWithoutCurrencyInput.displayName = 'AmountWithoutCurrencyInput';
 
-export default React.forwardRef(AmountWithoutCurrencyInput);
+export default AmountWithoutCurrencyInput;

From 0a85bdeb9075833f1fc50a62a2e33b825f98122d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Fri, 19 Sep 2025 16:55:33 +0200
Subject: [PATCH 03/29] CheckboxWithLabel.tsx

---
 src/components/CheckboxWithLabel.tsx | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/components/CheckboxWithLabel.tsx b/src/components/CheckboxWithLabel.tsx
index 0647b495bd33..1dca543681ff 100644
--- a/src/components/CheckboxWithLabel.tsx
+++ b/src/components/CheckboxWithLabel.tsx
@@ -58,11 +58,13 @@ type CheckboxWithLabelProps = RequiredLabelProps & {
 
     /** An accessibility label for the checkbox */
     accessibilityLabel?: string;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<View>;
 };
 
 function CheckboxWithLabel(
-    {errorText = '', isChecked: isCheckedProp = false, defaultValue = false, onInputChange = () => {}, LabelComponent, label, accessibilityLabel, style, value}: CheckboxWithLabelProps,
-    ref: ForwardedRef<View>,
+    {errorText = '', isChecked: isCheckedProp = false, defaultValue = false, onInputChange = () => {}, LabelComponent, label, accessibilityLabel, style, value, ref}: CheckboxWithLabelProps,
 ) {
     const styles = useThemeStyles();
     // We need to pick the first value that is strictly a boolean
@@ -106,6 +108,6 @@ function CheckboxWithLabel(
 
 CheckboxWithLabel.displayName = 'CheckboxWithLabel';
 
-export default React.forwardRef(CheckboxWithLabel);
+export default CheckboxWithLabel;
 
 export type {CheckboxWithLabelProps};

From 484aac2b711b82e0c0456cf6dd4a8ce40ed4017a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Fri, 19 Sep 2025 17:13:45 +0200
Subject: [PATCH 04/29] Removed forwardRef from ContextMenuItem.tsx

---
 src/components/ContextMenuItem.tsx | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/components/ContextMenuItem.tsx b/src/components/ContextMenuItem.tsx
index 6aff89666a07..8f88dcb818b6 100644
--- a/src/components/ContextMenuItem.tsx
+++ b/src/components/ContextMenuItem.tsx
@@ -1,5 +1,5 @@
 import type {ForwardedRef} from 'react';
-import React, {forwardRef, useImperativeHandle} from 'react';
+import React, {useImperativeHandle} from 'react';
 import type {GestureResponderEvent, StyleProp, View, ViewStyle} from 'react-native';
 import useStyleUtils from '@hooks/useStyleUtils';
 import useThemeStyles from '@hooks/useThemeStyles';
@@ -61,6 +61,9 @@ type ContextMenuItemProps = {
 
     /** Whether the menu item should show loading icon */
     shouldShowLoadingSpinnerIcon?: boolean;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<ContextMenuItemHandle>;
 };
 
 type ContextMenuItemHandle = {
@@ -86,8 +89,8 @@ function ContextMenuItem(
         onBlur = () => {},
         disabled = false,
         shouldShowLoadingSpinnerIcon = false,
+        ref,
     }: ContextMenuItemProps,
-    ref: ForwardedRef<ContextMenuItemHandle>,
 ) {
     const styles = useThemeStyles();
     const StyleUtils = useStyleUtils();
@@ -151,5 +154,5 @@ function ContextMenuItem(
 
 ContextMenuItem.displayName = 'ContextMenuItem';
 
-export default forwardRef(ContextMenuItem);
+export default ContextMenuItem;
 export type {ContextMenuItemHandle};

From e92bfabb4c54e7e084cd41927bf7a6fbfb065f59 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Fri, 19 Sep 2025 17:31:30 +0200
Subject: [PATCH 05/29] Removed forwardRef from Countryselector.tsx

---
 src/components/CountrySelector.tsx | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/components/CountrySelector.tsx b/src/components/CountrySelector.tsx
index 094f529c66b2..817c49ad03bc 100644
--- a/src/components/CountrySelector.tsx
+++ b/src/components/CountrySelector.tsx
@@ -1,5 +1,5 @@
 import {useIsFocused} from '@react-navigation/native';
-import React, {forwardRef, useEffect, useRef} from 'react';
+import React, {useEffect, useRef} from 'react';
 import type {ForwardedRef} from 'react';
 import type {View} from 'react-native';
 import useGeographicalStateAndCountryFromRoute from '@hooks/useGeographicalStateAndCountryFromRoute';
@@ -27,9 +27,12 @@ type CountrySelectorProps = {
 
     /** Callback to call when the picker modal is dismissed */
     onBlur?: () => void;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<View>;
 };
 
-function CountrySelector({errorText = '', value: countryCode, onInputChange = () => {}, onBlur}: CountrySelectorProps, ref: ForwardedRef<View>) {
+function CountrySelector({errorText = '', value: countryCode, onInputChange = () => {}, onBlur, ref}: CountrySelectorProps) {
     const styles = useThemeStyles();
     const {translate} = useLocalize();
     const {country: countryFromUrl} = useGeographicalStateAndCountryFromRoute();
@@ -85,4 +88,4 @@ function CountrySelector({errorText = '', value: countryCode, onInputChange = ()
 
 CountrySelector.displayName = 'CountrySelector';
 
-export default forwardRef(CountrySelector);
+export default CountrySelector;

From 450f9741b650689d3efd84f503e561e29735eb90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Fri, 19 Sep 2025 17:32:55 +0200
Subject: [PATCH 06/29] Removed forwardRef from CurrencySelector.tsx

---
 src/components/CurrencySelector.tsx | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/components/CurrencySelector.tsx b/src/components/CurrencySelector.tsx
index 1d45860f5d32..1e55b361d6f7 100644
--- a/src/components/CurrencySelector.tsx
+++ b/src/components/CurrencySelector.tsx
@@ -35,6 +35,9 @@ type CurrencySelectorProps = {
 
     /** Whether to show currency symbol in the title */
     shouldShowCurrencySymbol?: boolean;
+
+    /** Reference to the outer element */
+    ref: ForwardedRef<View>,
 };
 
 function CurrencySelector(
@@ -46,8 +49,8 @@ function CurrencySelector(
         currencySelectorRoute = ROUTES.SETTINGS_CHANGE_CURRENCY,
         label,
         shouldShowCurrencySymbol = false,
+        ref,
     }: CurrencySelectorProps,
-    ref: ForwardedRef<View>,
 ) {
     const styles = useThemeStyles();
     const {translate} = useLocalize();
@@ -94,4 +97,4 @@ function CurrencySelector(
 
 CurrencySelector.displayName = 'CurrencySelector';
 
-export default forwardRef(CurrencySelector);
+export default CurrencySelector;

From 78e716cb6c0f047963c506a258dcda4f20e48af4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Fri, 19 Sep 2025 17:34:39 +0200
Subject: [PATCH 07/29] Removed forwardRef from FormScrollView.tsx

---
 src/components/FormScrollView.tsx | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/components/FormScrollView.tsx b/src/components/FormScrollView.tsx
index 91f5a825a38a..77eed896a968 100644
--- a/src/components/FormScrollView.tsx
+++ b/src/components/FormScrollView.tsx
@@ -8,9 +8,12 @@ import ScrollView from './ScrollView';
 type FormScrollViewProps = ScrollViewProps & {
     /** Form elements */
     children: React.ReactNode;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<RNScrollView>;
 };
 
-function FormScrollView({children, ...rest}: FormScrollViewProps, ref: ForwardedRef<RNScrollView>) {
+function FormScrollView({children, ref, ...rest}: FormScrollViewProps) {
     const styles = useThemeStyles();
     return (
         <ScrollView
@@ -28,4 +31,4 @@ function FormScrollView({children, ...rest}: FormScrollViewProps, ref: Forwarded
 
 FormScrollView.displayName = 'FormScrollView';
 
-export default React.forwardRef(FormScrollView);
+export default FormScrollView;

From a08967c5b3809e76302eec5d04d7c5a8a3d4376a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 00:00:39 +0200
Subject: [PATCH 08/29] Removed forwardRef from HighlightableMenuItem.tsx

---
 src/components/HighlightableMenuItem.tsx | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/components/HighlightableMenuItem.tsx b/src/components/HighlightableMenuItem.tsx
index 983acf6fb02b..1fd9a546ce84 100644
--- a/src/components/HighlightableMenuItem.tsx
+++ b/src/components/HighlightableMenuItem.tsx
@@ -1,5 +1,5 @@
 import type {ForwardedRef} from 'react';
-import React, {forwardRef} from 'react';
+import React from 'react';
 import type {View} from 'react-native';
 import {StyleSheet} from 'react-native';
 import useAnimatedHighlightStyle from '@hooks/useAnimatedHighlightStyle';
@@ -10,9 +10,12 @@ import type {MenuItemProps} from './MenuItem';
 type Props = MenuItemProps & {
     /** Should the menu item be highlighted? */
     highlighted?: boolean;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<View>;
 };
 
-function HighlightableMenuItem({wrapperStyle, highlighted, ...restOfProps}: Props, ref: ForwardedRef<View>) {
+function HighlightableMenuItem({wrapperStyle, highlighted, ref, ...restOfProps}: Props) {
     const styles = useThemeStyles();
 
     const flattenedWrapperStyles = StyleSheet.flatten(wrapperStyle);
@@ -35,4 +38,4 @@ function HighlightableMenuItem({wrapperStyle, highlighted, ...restOfProps}: Prop
 
 HighlightableMenuItem.displayName = 'HighlightableMenuItem';
 
-export default forwardRef(HighlightableMenuItem);
+export default HighlightableMenuItem;

From 9d6d600597e581657fa118cd609d143335cabcc2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 09:33:54 +0200
Subject: [PATCH 09/29] Removed forwardRef from InteractiveStepSubHeader.tsx

---
 src/components/InteractiveStepSubHeader.tsx | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/components/InteractiveStepSubHeader.tsx b/src/components/InteractiveStepSubHeader.tsx
index aad5f502df47..3be92324e73a 100644
--- a/src/components/InteractiveStepSubHeader.tsx
+++ b/src/components/InteractiveStepSubHeader.tsx
@@ -1,5 +1,5 @@
 import type {ForwardedRef} from 'react';
-import React, {forwardRef, useImperativeHandle, useState} from 'react';
+import React, {useImperativeHandle, useState} from 'react';
 import type {ViewStyle} from 'react-native';
 import {View} from 'react-native';
 import useThemeStyles from '@hooks/useThemeStyles';
@@ -20,6 +20,9 @@ type InteractiveStepSubHeaderProps = {
 
     /** The index of the step to start with */
     startStepIndex?: number;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<InteractiveStepSubHeaderHandle>;
 };
 
 type InteractiveStepSubHeaderHandle = {
@@ -36,7 +39,7 @@ type InteractiveStepSubHeaderHandle = {
 const MIN_AMOUNT_FOR_EXPANDING = 3;
 const MIN_AMOUNT_OF_STEPS = 2;
 
-function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected}: InteractiveStepSubHeaderProps, ref: ForwardedRef<InteractiveStepSubHeaderHandle>) {
+function InteractiveStepSubHeader({stepNames, startStepIndex = 0, onStepSelected, ref}: InteractiveStepSubHeaderProps) {
     const styles = useThemeStyles();
     const containerWidthStyle: ViewStyle = stepNames.length < MIN_AMOUNT_FOR_EXPANDING ? styles.mnw60 : styles.mnw100;
 
@@ -123,4 +126,4 @@ InteractiveStepSubHeader.displayName = 'InteractiveStepSubHeader';
 
 export type {InteractiveStepSubHeaderProps, InteractiveStepSubHeaderHandle};
 
-export default forwardRef(InteractiveStepSubHeader);
+export default InteractiveStepSubHeader;

From c1133fe6a537f7206e3ecc31a06dd15630943ebc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 10:35:43 +0200
Subject: [PATCH 10/29] Removed forwardRef from InteractiveStepWrapper.tsx

---
 src/components/InteractiveStepWrapper.tsx | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/components/InteractiveStepWrapper.tsx b/src/components/InteractiveStepWrapper.tsx
index d9f6709c47ec..6a327d0af025 100644
--- a/src/components/InteractiveStepWrapper.tsx
+++ b/src/components/InteractiveStepWrapper.tsx
@@ -1,4 +1,5 @@
-import React, {forwardRef} from 'react';
+import type { ForwardedRef } from 'react';
+import React from 'react';
 import type {StyleProp, ViewStyle} from 'react-native';
 import {View} from 'react-native';
 import useThemeStyles from '@hooks/useThemeStyles';
@@ -56,6 +57,9 @@ type InteractiveStepWrapperProps = {
      * This flag can be removed, once all components/screens have switched to edge-to-edge safe area handling.
      */
     enableEdgeToEdgeBottomSafeAreaPadding?: boolean;
+
+    // Reference to the outer element
+    ref?: ForwardedRef<View>;
 };
 
 function InteractiveStepWrapper(
@@ -74,8 +78,8 @@ function InteractiveStepWrapper(
         offlineIndicatorStyle,
         shouldKeyboardOffsetBottomSafeAreaPadding,
         enableEdgeToEdgeBottomSafeAreaPadding,
+        ref,
     }: InteractiveStepWrapperProps,
-    ref: React.ForwardedRef<View>,
 ) {
     const styles = useThemeStyles();
 
@@ -112,4 +116,4 @@ function InteractiveStepWrapper(
 
 InteractiveStepWrapper.displayName = 'InteractiveStepWrapper';
 
-export default forwardRef(InteractiveStepWrapper);
+export default InteractiveStepWrapper;

From 969a22d7e95dd561ec2b525d38cb38e05be97145 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 10:38:01 +0200
Subject: [PATCH 11/29] Removed forwardRef from MagicCodeInput.tsx

---
 src/components/MagicCodeInput.tsx | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/components/MagicCodeInput.tsx b/src/components/MagicCodeInput.tsx
index 12946ee83693..2519e395e508 100644
--- a/src/components/MagicCodeInput.tsx
+++ b/src/components/MagicCodeInput.tsx
@@ -1,5 +1,5 @@
 import type {ForwardedRef, KeyboardEvent} from 'react';
-import React, {forwardRef, useEffect, useImperativeHandle, useRef, useState} from 'react';
+import React, {useEffect, useImperativeHandle, useRef, useState} from 'react';
 import type {NativeSyntheticEvent, TextInput as RNTextInput, TextInputFocusEventData, TextInputKeyPressEventData} from 'react-native';
 import {StyleSheet, View} from 'react-native';
 import {Gesture, GestureDetector} from 'react-native-gesture-handler';
@@ -99,6 +99,9 @@ type MagicCodeInputProps = {
 
     /** TestID for test */
     testID?: string;
+    
+    /** Reference to the outer element */
+    ref?: ForwardedRef<MagicCodeInputHandle>;
 };
 
 type MagicCodeInputHandle = {
@@ -148,8 +151,8 @@ function MagicCodeInput(
         autoComplete,
         hasError = false,
         testID = '',
+        ref,
     }: MagicCodeInputProps,
-    ref: ForwardedRef<MagicCodeInputHandle>,
 ) {
     const styles = useThemeStyles();
     const StyleUtils = useStyleUtils();
@@ -540,5 +543,5 @@ function MagicCodeInput(
 
 MagicCodeInput.displayName = 'MagicCodeInput';
 
-export default forwardRef(MagicCodeInput);
+export default MagicCodeInput;
 export type {AutoCompleteVariant, MagicCodeInputHandle, MagicCodeInputProps};

From cc7838c491a8fea4318a411ee2d4d7be2af2a905 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 10:45:42 +0200
Subject: [PATCH 12/29] Removed forwardRef from PercentageForm.tsx

---
 src/components/PercentageForm.tsx | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/components/PercentageForm.tsx b/src/components/PercentageForm.tsx
index aee231de526c..3c3b78e3ad82 100644
--- a/src/components/PercentageForm.tsx
+++ b/src/components/PercentageForm.tsx
@@ -1,5 +1,5 @@
 import type {ForwardedRef} from 'react';
-import React, {forwardRef, useCallback, useMemo, useRef} from 'react';
+import React, {useCallback, useMemo, useRef} from 'react';
 import useLocalize from '@hooks/useLocalize';
 import {replaceAllDigits, stripCommaFromAmount, stripSpacesFromAmount, validatePercentage} from '@libs/MoneyRequestUtils';
 import CONST from '@src/CONST';
@@ -18,9 +18,12 @@ type PercentageFormProps = {
 
     /** Custom label for the TextInput */
     label?: string;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<BaseTextInputRef>;
 };
 
-function PercentageForm({value: amount, errorText, onInputChange, label, ...rest}: PercentageFormProps, forwardedRef: ForwardedRef<BaseTextInputRef>) {
+function PercentageForm({value: amount, errorText, onInputChange, label, ref, ...rest}: PercentageFormProps) {
     const {toLocaleDigit, numberFormat} = useLocalize();
 
     const textInput = useRef<BaseTextInputRef | null>(null);
@@ -56,14 +59,14 @@ function PercentageForm({value: amount, errorText, onInputChange, label, ...rest
             value={formattedAmount}
             onChangeText={setNewAmount}
             placeholder={numberFormat(0)}
-            ref={(ref: BaseTextInputRef | null) => {
-                if (typeof forwardedRef === 'function') {
-                    forwardedRef(ref);
-                } else if (forwardedRef && 'current' in forwardedRef) {
+            ref={(newRef: BaseTextInputRef | null) => {
+                if (typeof ref === 'function') {
+                    ref(newRef);
+                } else if (ref && 'current' in ref) {
                     // eslint-disable-next-line no-param-reassign
-                    forwardedRef.current = ref;
+                    ref.current = newRef;
                 }
-                textInput.current = ref;
+                textInput.current = newRef;
             }}
             suffixCharacter="%"
             keyboardType={CONST.KEYBOARD_TYPE.DECIMAL_PAD}
@@ -78,4 +81,4 @@ function PercentageForm({value: amount, errorText, onInputChange, label, ...rest
 
 PercentageForm.displayName = 'PercentageForm';
 
-export default forwardRef(PercentageForm);
+export default PercentageForm;

From 18c6c98215fbb7b8a163c5aaa6390bf2c8e0e2b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 10:48:16 +0200
Subject: [PATCH 13/29] Removed forwardRef from RadioButtons.tsx

---
 src/components/RadioButtons.tsx | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/components/RadioButtons.tsx b/src/components/RadioButtons.tsx
index 07e8fe38f772..afbc8879c68c 100644
--- a/src/components/RadioButtons.tsx
+++ b/src/components/RadioButtons.tsx
@@ -1,4 +1,4 @@
-import React, {forwardRef, useEffect, useState} from 'react';
+import React, {useEffect, useState} from 'react';
 import type {ForwardedRef} from 'react';
 import {View} from 'react-native';
 import type {StyleProp, ViewStyle} from 'react-native';
@@ -33,9 +33,12 @@ type RadioButtonsProps = {
 
     /** The checked value, if you're using this component as a controlled input. */
     value?: string;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<View>;
 };
 
-function RadioButtons({items, onPress, defaultCheckedValue = '', radioButtonStyle, errorText, onInputChange = () => {}, value}: RadioButtonsProps, ref: ForwardedRef<View>) {
+function RadioButtons({items, onPress, defaultCheckedValue = '', radioButtonStyle, errorText, onInputChange = () => {}, value, ref}: RadioButtonsProps) {
     const styles = useThemeStyles();
     const [checkedValue, setCheckedValue] = useState(defaultCheckedValue);
 
@@ -74,4 +77,4 @@ function RadioButtons({items, onPress, defaultCheckedValue = '', radioButtonStyl
 RadioButtons.displayName = 'RadioButtons';
 
 export type {Choice};
-export default forwardRef(RadioButtons);
+export default RadioButtons;

From 36401ad96e6ee9491fa1867ac0143e4ee8592c6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 10:49:56 +0200
Subject: [PATCH 14/29] Small code cleanup

---
 src/components/Share/ShareTabParticipantsSelector.tsx | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/components/Share/ShareTabParticipantsSelector.tsx b/src/components/Share/ShareTabParticipantsSelector.tsx
index 8c5fc99b1a1f..f810deca6ece 100644
--- a/src/components/Share/ShareTabParticipantsSelector.tsx
+++ b/src/components/Share/ShareTabParticipantsSelector.tsx
@@ -1,3 +1,4 @@
+import type { Ref } from 'react';
 import React from 'react';
 import {saveUnknownUserDetails} from '@libs/actions/Share';
 import Navigation from '@libs/Navigation/Navigation';
@@ -8,7 +9,7 @@ import type ROUTES from '@src/ROUTES';
 
 type ShareTabParticipantsSelectorProps = {
     detailsPageRouteObject: typeof ROUTES.SHARE_SUBMIT_DETAILS | typeof ROUTES.SHARE_DETAILS;
-    ref?: React.Ref<InputFocusRef>;
+    ref?: Ref<InputFocusRef>;
 };
 
 type InputFocusRef = {

From 7841e73084fabdc27ae976dfad9a59fd028e495a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 10:53:50 +0200
Subject: [PATCH 15/29] Removed forwardRef from SingleChoiceQuestion.tsx

---
 src/components/SingleChoiceQuestion.tsx | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/components/SingleChoiceQuestion.tsx b/src/components/SingleChoiceQuestion.tsx
index e52007850475..a6e29661debd 100644
--- a/src/components/SingleChoiceQuestion.tsx
+++ b/src/components/SingleChoiceQuestion.tsx
@@ -1,5 +1,5 @@
 import type {ForwardedRef} from 'react';
-import React, {forwardRef} from 'react';
+import React from 'react';
 // eslint-disable-next-line no-restricted-imports
 import type {Text as RNText} from 'react-native';
 import useThemeStyles from '@hooks/useThemeStyles';
@@ -13,9 +13,10 @@ type SingleChoiceQuestionProps = {
     possibleAnswers: Choice[];
     currentQuestionIndex: number;
     onInputChange: (value: string) => void;
+    ref?: ForwardedRef<RNText>;
 };
 
-function SingleChoiceQuestion({prompt, errorText, possibleAnswers, currentQuestionIndex, onInputChange}: SingleChoiceQuestionProps, ref: ForwardedRef<RNText>) {
+function SingleChoiceQuestion({prompt, errorText, possibleAnswers, currentQuestionIndex, onInputChange, ref}: SingleChoiceQuestionProps) {
     const styles = useThemeStyles();
 
     return (
@@ -38,4 +39,4 @@ function SingleChoiceQuestion({prompt, errorText, possibleAnswers, currentQuesti
 
 SingleChoiceQuestion.displayName = 'SingleChoiceQuestion';
 
-export default forwardRef(SingleChoiceQuestion);
+export default SingleChoiceQuestion;

From 709690b1e909e3fea58e61cbd3f5bac4198fc8aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 10:55:43 +0200
Subject: [PATCH 16/29] Removed forwardRef from StateSelector.tsx

---
 src/components/StateSelector.tsx | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/components/StateSelector.tsx b/src/components/StateSelector.tsx
index 4b12dbf7c6b7..97174bb5b116 100644
--- a/src/components/StateSelector.tsx
+++ b/src/components/StateSelector.tsx
@@ -35,11 +35,13 @@ type StateSelectorProps = {
 
     /** object to get route details from */
     stateSelectorRoute?: typeof ROUTES.SETTINGS_ADDRESS_STATE | typeof ROUTES.MONEY_REQUEST_STATE_SELECTOR;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<View>;
 };
 
 function StateSelector(
-    {errorText, onBlur, value: stateCode, label, onInputChange, wrapperStyle, stateSelectorRoute = ROUTES.SETTINGS_ADDRESS_STATE}: StateSelectorProps,
-    ref: ForwardedRef<View>,
+    {errorText, onBlur, value: stateCode, label, onInputChange, wrapperStyle, stateSelectorRoute = ROUTES.SETTINGS_ADDRESS_STATE, ref}: StateSelectorProps,
 ) {
     const styles = useThemeStyles();
     const {translate} = useLocalize();
@@ -100,6 +102,6 @@ function StateSelector(
 
 StateSelector.displayName = 'StateSelector';
 
-export default React.forwardRef(StateSelector);
+export default StateSelector;
 
 export type {State};

From fe67331c7cc56bcb1fdd8f15364546c3118c5f96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 10:57:47 +0200
Subject: [PATCH 17/29] Removed forwardRef from TextLink.tsx

---
 src/components/TextLink.tsx | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/components/TextLink.tsx b/src/components/TextLink.tsx
index 715d25e040a9..9dcb790a536e 100644
--- a/src/components/TextLink.tsx
+++ b/src/components/TextLink.tsx
@@ -1,7 +1,7 @@
-import type {ForwardedRef, KeyboardEvent, KeyboardEventHandler, MouseEventHandler} from 'react';
-import React, {forwardRef} from 'react';
+import type {KeyboardEvent, KeyboardEventHandler, MouseEventHandler} from 'react';
+import React from 'react';
 // eslint-disable-next-line no-restricted-imports
-import type {GestureResponderEvent, Text as RNText, StyleProp, TextStyle} from 'react-native';
+import type {GestureResponderEvent, StyleProp, TextStyle} from 'react-native';
 import useEnvironment from '@hooks/useEnvironment';
 import useThemeStyles from '@hooks/useThemeStyles';
 import {openLink as openLinkUtil} from '@userActions/Link';
@@ -32,7 +32,7 @@ type TextLinkProps = (LinkProps | PressProps) &
         onMouseDown?: MouseEventHandler;
     };
 
-function TextLink({href, onPress, children, style, onMouseDown = (event) => event.preventDefault(), ...rest}: TextLinkProps, ref: ForwardedRef<RNText>) {
+function TextLink({href, onPress, children, style, onMouseDown = (event) => event.preventDefault(), ref, ...rest}: TextLinkProps) {
     const {environmentURL} = useEnvironment();
     const styles = useThemeStyles();
 
@@ -81,4 +81,4 @@ TextLink.displayName = 'TextLink';
 
 export type {LinkProps, PressProps, TextLinkProps};
 
-export default forwardRef(TextLink);
+export default TextLink;

From cb7d9817d6c28df7504429d14fdcb695145e9ea0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 11:20:35 +0200
Subject: [PATCH 18/29] Removed forwardRef from TimeModalPicker.tsx

---
 src/components/TimeModalPicker.tsx | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/components/TimeModalPicker.tsx b/src/components/TimeModalPicker.tsx
index be85fb719839..fdd399b01200 100644
--- a/src/components/TimeModalPicker.tsx
+++ b/src/components/TimeModalPicker.tsx
@@ -1,4 +1,4 @@
-import React, {forwardRef, useState} from 'react';
+import React, {useState} from 'react';
 import type {ForwardedRef} from 'react';
 import {View} from 'react-native';
 import useThemeStyles from '@hooks/useThemeStyles';
@@ -22,9 +22,12 @@ type TimeModalPickerProps = {
 
     /** Label for the picker */
     label: string;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<View>;
 };
 
-function TimeModalPicker({value, errorText, label, onInputChange = () => {}}: TimeModalPickerProps, ref: ForwardedRef<View>) {
+function TimeModalPicker({value, errorText, label, onInputChange = () => {}, ref}: TimeModalPickerProps) {
     const styles = useThemeStyles();
     const [isPickerVisible, setIsPickerVisible] = useState(false);
     const currentTime = value ? DateUtils.extractTime12Hour(value) : undefined;
@@ -81,4 +84,4 @@ function TimeModalPicker({value, errorText, label, onInputChange = () => {}}: Ti
 }
 
 TimeModalPicker.displayName = 'TimeModalPicker';
-export default forwardRef(TimeModalPicker);
+export default TimeModalPicker;

From 311aa0727a427d160f697d47d9c91df93dd510b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 12:42:38 +0200
Subject: [PATCH 19/29] Removed forwardRef from withToggleVisibilityView.tsx

---
 src/components/withToggleVisibilityView.tsx | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/components/withToggleVisibilityView.tsx b/src/components/withToggleVisibilityView.tsx
index 809f2898aaa7..a56edb07f909 100644
--- a/src/components/withToggleVisibilityView.tsx
+++ b/src/components/withToggleVisibilityView.tsx
@@ -1,4 +1,4 @@
-import type {ComponentType, ForwardedRef, ReactElement, RefAttributes} from 'react';
+import type {ComponentType, ReactElement} from 'react';
 import React from 'react';
 import {View} from 'react-native';
 import useThemeStyles from '@hooks/useThemeStyles';
@@ -9,10 +9,9 @@ type WithToggleVisibilityViewProps = {
     isVisible?: boolean;
 };
 
-export default function withToggleVisibilityView<TProps, TRef>(
-    WrappedComponent: ComponentType<TProps & RefAttributes<TRef>>,
-): (props: TProps & WithToggleVisibilityViewProps & RefAttributes<TRef>) => ReactElement | null {
-    function WithToggleVisibilityView({isVisible = false, ...rest}: WithToggleVisibilityViewProps, ref: ForwardedRef<TRef>) {
+export default function withToggleVisibilityView<TProps>(WrappedComponent: ComponentType<TProps>): 
+(props: TProps & WithToggleVisibilityViewProps) => ReactElement | null {
+    function WithToggleVisibilityView({isVisible = false, ...rest}: WithToggleVisibilityViewProps) {
         const styles = useThemeStyles();
         return (
             <View
@@ -22,7 +21,6 @@ export default function withToggleVisibilityView<TProps, TRef>(
                 <WrappedComponent
                     // eslint-disable-next-line react/jsx-props-no-spreading
                     {...(rest as TProps)}
-                    ref={ref}
                     isVisible={isVisible}
                 />
             </View>
@@ -30,7 +28,7 @@ export default function withToggleVisibilityView<TProps, TRef>(
     }
 
     WithToggleVisibilityView.displayName = `WithToggleVisibilityViewWithRef(${getComponentDisplayName(WrappedComponent)})`;
-    return React.forwardRef(WithToggleVisibilityView);
+    return WithToggleVisibilityView;
 }
 
 export type {WithToggleVisibilityViewProps};

From f87737fcca3a73c636dd26215981427a5be02d1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 12:47:06 +0200
Subject: [PATCH 20/29] Removed forwardRef from withViewportOffsetTop.tsx

---
 src/components/withViewportOffsetTop.tsx | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/components/withViewportOffsetTop.tsx b/src/components/withViewportOffsetTop.tsx
index d3e9b63ad3ee..51e56d447c0f 100644
--- a/src/components/withViewportOffsetTop.tsx
+++ b/src/components/withViewportOffsetTop.tsx
@@ -1,5 +1,5 @@
-import type {ComponentType, ForwardedRef, RefAttributes} from 'react';
-import React, {forwardRef, useEffect, useState} from 'react';
+import type {ComponentType} from 'react';
+import React, {useEffect, useState} from 'react';
 import getComponentDisplayName from '@libs/getComponentDisplayName';
 import addViewportResizeListener from '@libs/VisualViewport';
 
@@ -9,8 +9,8 @@ type ViewportOffsetTopProps = {
     viewportOffsetTop: number;
 };
 
-export default function withViewportOffsetTop<TProps extends ViewportOffsetTopProps, TRef>(WrappedComponent: ComponentType<TProps & RefAttributes<TRef>>) {
-    function WithViewportOffsetTop(props: Omit<TProps, keyof ViewportOffsetTopProps>, ref: ForwardedRef<TRef>) {
+export default function withViewportOffsetTop<TProps extends ViewportOffsetTopProps>(WrappedComponent: ComponentType<TProps>) {
+    function WithViewportOffsetTop(props: Omit<TProps, keyof ViewportOffsetTopProps>) {
         const [viewportOffsetTop, setViewportOffsetTop] = useState(0);
 
         useEffect(() => {
@@ -30,7 +30,6 @@ export default function withViewportOffsetTop<TProps extends ViewportOffsetTopPr
             <WrappedComponent
                 // eslint-disable-next-line react/jsx-props-no-spreading
                 {...(props as TProps)}
-                ref={ref}
                 viewportOffsetTop={viewportOffsetTop}
             />
         );
@@ -38,5 +37,5 @@ export default function withViewportOffsetTop<TProps extends ViewportOffsetTopPr
 
     WithViewportOffsetTop.displayName = `WithViewportOffsetTop(${getComponentDisplayName(WrappedComponent)})`;
 
-    return forwardRef(WithViewportOffsetTop);
+    return WithViewportOffsetTop;
 }

From 2eaa7ab4c8d1a9218625e8a83a4a5d2d7d256b68 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 15:19:10 +0200
Subject: [PATCH 21/29] Removed forwardRef from ActionSheetAwareScrollView
 component

---
 .../ActionSheetAwareScrollView/index.ios.tsx  |  8 +++----
 .../ActionSheetAwareScrollView/index.tsx      | 23 ++++++++++---------
 .../ActionSheetAwareScrollView/types.ts       | 12 +++++++---
 3 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/src/components/ActionSheetAwareScrollView/index.ios.tsx b/src/components/ActionSheetAwareScrollView/index.ios.tsx
index 6fead4946aea..784d7d9eb584 100644
--- a/src/components/ActionSheetAwareScrollView/index.ios.tsx
+++ b/src/components/ActionSheetAwareScrollView/index.ios.tsx
@@ -1,12 +1,10 @@
-import React, {forwardRef, useCallback} from 'react';
-// eslint-disable-next-line no-restricted-imports
-import type {ScrollView} from 'react-native';
+import React, {useCallback} from 'react';
 import Reanimated, {useAnimatedRef, useAnimatedStyle} from 'react-native-reanimated';
 import {Actions, ActionSheetAwareScrollViewContext, ActionSheetAwareScrollViewProvider} from './ActionSheetAwareScrollViewContext';
 import type {ActionSheetAwareScrollViewProps, RenderActionSheetAwareScrollViewComponent} from './types';
 import useActionSheetKeyboardSpacing from './useActionSheetKeyboardSpacing';
 
-const ActionSheetAwareScrollView = forwardRef<ScrollView, ActionSheetAwareScrollViewProps>(({style, children, ...props}, ref) => {
+function ActionSheetAwareScrollView({style, children, isInvertedScrollView, ref, ...props}: ActionSheetAwareScrollViewProps) {
     const scrollViewAnimatedRef = useAnimatedRef<Reanimated.ScrollView>();
 
     const onRef = useCallback(
@@ -38,7 +36,7 @@ const ActionSheetAwareScrollView = forwardRef<ScrollView, ActionSheetAwareScroll
             {children}
         </Reanimated.ScrollView>
     );
-});
+}
 
 export default ActionSheetAwareScrollView;
 
diff --git a/src/components/ActionSheetAwareScrollView/index.tsx b/src/components/ActionSheetAwareScrollView/index.tsx
index f2fc64cda8bd..fbb8e601d852 100644
--- a/src/components/ActionSheetAwareScrollView/index.tsx
+++ b/src/components/ActionSheetAwareScrollView/index.tsx
@@ -1,20 +1,21 @@
 // this whole file is just for other platforms
 // iOS version has everything implemented
-import React, {forwardRef} from 'react';
+import React from 'react';
 // eslint-disable-next-line no-restricted-imports
 import {ScrollView} from 'react-native';
 import {Actions, ActionSheetAwareScrollViewContext, ActionSheetAwareScrollViewProvider} from './ActionSheetAwareScrollViewContext';
 import type {ActionSheetAwareScrollViewProps, RenderActionSheetAwareScrollViewComponent} from './types';
 
-const ActionSheetAwareScrollView = forwardRef<ScrollView, ActionSheetAwareScrollViewProps>((props, ref) => (
-    <ScrollView
-        ref={ref}
-        // eslint-disable-next-line react/jsx-props-no-spreading
-        {...props}
-    >
-        {props.children}
-    </ScrollView>
-));
+function ActionSheetAwareScrollView(props: ActionSheetAwareScrollViewProps) {
+    return (
+        <ScrollView
+            // eslint-disable-next-line react/jsx-props-no-spreading
+            {...props}
+        >
+            {props.children}
+        </ScrollView>
+    );
+}
 
 export default ActionSheetAwareScrollView;
 
@@ -27,4 +28,4 @@ export default ActionSheetAwareScrollView;
  */
 const renderScrollComponent: RenderActionSheetAwareScrollViewComponent = undefined;
 
-export {renderScrollComponent, ActionSheetAwareScrollViewContext, ActionSheetAwareScrollViewProvider, Actions};
+export {renderScrollComponent, ActionSheetAwareScrollViewContext, ActionSheetAwareScrollViewProvider, Actions};
\ No newline at end of file
diff --git a/src/components/ActionSheetAwareScrollView/types.ts b/src/components/ActionSheetAwareScrollView/types.ts
index 9d7f7f765fef..5f8b27e19c21 100644
--- a/src/components/ActionSheetAwareScrollView/types.ts
+++ b/src/components/ActionSheetAwareScrollView/types.ts
@@ -1,6 +1,12 @@
-import type {PropsWithChildren} from 'react';
-import type {ScrollViewProps} from 'react-native';
+import type {PropsWithChildren, Ref} from 'react';
+// eslint-disable-next-line no-restricted-imports
+import type {ScrollView, ScrollViewProps} from 'react-native';
 
-type ActionSheetAwareScrollViewProps = PropsWithChildren<ScrollViewProps>;
+type ActionSheetAwareScrollViewAnimationProps = {
+    /** Whether the child ScrollView is inverted */
+    isInvertedScrollView?: boolean;
+    ref?: Ref<ScrollView>;
+};
+type ActionSheetAwareScrollViewProps = PropsWithChildren<ScrollViewProps> & ActionSheetAwareScrollViewAnimationProps;
 type RenderActionSheetAwareScrollViewComponent = ((props: ActionSheetAwareScrollViewProps) => React.ReactElement<ScrollViewProps>) | undefined;
 export type {ActionSheetAwareScrollViewProps, RenderActionSheetAwareScrollViewComponent};

From dcf07988683b3f42098c6c35d6a04906613e20bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 15:24:55 +0200
Subject: [PATCH 22/29] Removed forwardRef from AddressSearch component

---
 src/components/AddressSearch/index.tsx | 7 +++----
 src/components/AddressSearch/types.ts  | 5 ++++-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/components/AddressSearch/index.tsx b/src/components/AddressSearch/index.tsx
index 4e0fe3d646f7..1ed2a6666aba 100644
--- a/src/components/AddressSearch/index.tsx
+++ b/src/components/AddressSearch/index.tsx
@@ -1,5 +1,4 @@
-import React, {forwardRef, useEffect, useMemo, useRef, useState} from 'react';
-import type {ForwardedRef} from 'react';
+import React, {useEffect, useMemo, useRef, useState} from 'react';
 import {Keyboard, LogBox, View} from 'react-native';
 import type {LayoutChangeEvent} from 'react-native';
 import {GooglePlacesAutocomplete} from 'react-native-google-places-autocomplete';
@@ -80,8 +79,8 @@ function AddressSearch(
         value,
         locationBias,
         caretHidden,
+        ref,
     }: AddressSearchProps,
-    ref: ForwardedRef<HTMLElement>,
 ) {
     const theme = useTheme();
     const styles = useThemeStyles();
@@ -490,6 +489,6 @@ function AddressSearch(
 
 AddressSearch.displayName = 'AddressSearchWithRef';
 
-export default forwardRef(AddressSearch);
+export default AddressSearch;
 
 export type {AddressSearchProps};
diff --git a/src/components/AddressSearch/types.ts b/src/components/AddressSearch/types.ts
index dcf8822c4b5e..4c2979e9427f 100644
--- a/src/components/AddressSearch/types.ts
+++ b/src/components/AddressSearch/types.ts
@@ -1,4 +1,4 @@
-import type {RefObject} from 'react';
+import type {ForwardedRef, RefObject} from 'react';
 import type {NativeSyntheticEvent, StyleProp, TextInputFocusEventData, View, ViewStyle} from 'react-native';
 import type {Place} from 'react-native-google-places-autocomplete';
 import type {Country} from '@src/CONST';
@@ -90,6 +90,9 @@ type AddressSearchProps = {
 
     /** If true, caret is hidden. The default value is false. */
     caretHidden?: boolean;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<HTMLElement>;
 };
 
 type IsCurrentTargetInsideContainerType = (event: FocusEvent | NativeSyntheticEvent<TextInputFocusEventData>, containerRef: RefObject<View | HTMLElement | null>) => boolean;

From e08814ade89b177c9cf18b6ef5439a17e1c1fbcc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 15:31:36 +0200
Subject: [PATCH 23/29] Removed forwardRef from AmountPicker component

---
 src/components/AmountPicker/index.tsx | 9 ++++-----
 src/components/AmountPicker/types.ts  | 5 +++++
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/components/AmountPicker/index.tsx b/src/components/AmountPicker/index.tsx
index ec9ff2f4117d..40ad6ed9b752 100644
--- a/src/components/AmountPicker/index.tsx
+++ b/src/components/AmountPicker/index.tsx
@@ -1,5 +1,4 @@
-import React, {forwardRef, useState} from 'react';
-import type {ForwardedRef} from 'react';
+import React, {useState} from 'react';
 import {View} from 'react-native';
 import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
 import blurActiveElement from '@libs/Accessibility/blurActiveElement';
@@ -8,7 +7,7 @@ import callOrReturn from '@src/types/utils/callOrReturn';
 import AmountSelectorModal from './AmountSelectorModal';
 import type {AmountPickerProps} from './types';
 
-function AmountPicker({value, description, title, errorText = '', onInputChange, furtherDetails, rightLabel, ...rest}: AmountPickerProps, forwardedRef: ForwardedRef<View>) {
+function AmountPicker({value, description, title, errorText = '', onInputChange, furtherDetails, rightLabel, ref, ...rest}: AmountPickerProps) {
     const [isPickerVisible, setIsPickerVisible] = useState(false);
 
     const showPickerModal = () => {
@@ -31,7 +30,7 @@ function AmountPicker({value, description, title, errorText = '', onInputChange,
     return (
         <View>
             <MenuItemWithTopDescription
-                ref={forwardedRef}
+                ref={ref}
                 shouldShowRightIcon
                 title={callOrReturn(title, value)}
                 description={description}
@@ -56,4 +55,4 @@ function AmountPicker({value, description, title, errorText = '', onInputChange,
 
 AmountPicker.displayName = 'AmountPicker';
 
-export default forwardRef(AmountPicker);
+export default AmountPicker;
diff --git a/src/components/AmountPicker/types.ts b/src/components/AmountPicker/types.ts
index ffe14a567241..02e22c1f32f1 100644
--- a/src/components/AmountPicker/types.ts
+++ b/src/components/AmountPicker/types.ts
@@ -1,5 +1,7 @@
 import type {MenuItemBaseProps} from '@components/MenuItem';
 import type {NumberWithSymbolFormProps} from '@components/NumberWithSymbolForm';
+import type { ForwardedRef } from 'react';
+import type { View } from 'react-native';
 
 type AmountSelectorModalProps = {
     /** Whether the modal is visible */
@@ -47,6 +49,9 @@ type AmountPickerProps = {
 
     /** Whether to show the tooltip text */
     shouldShowTooltips?: boolean;
+
+    /** Rreference to the outer element */
+    ref?: ForwardedRef<View>;
 } & Pick<MenuItemBaseProps, 'rightLabel' | 'description'> &
     Pick<
         NumberWithSymbolFormProps,

From e4cd636cfaa9e89cd127729f6ab358e79f0980c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 15:35:57 +0200
Subject: [PATCH 24/29] Removed forwardRef from
 AttachmentCarousel/Pager/index.tsx

---
 .../Attachments/AttachmentCarousel/Pager/index.tsx        | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/components/Attachments/AttachmentCarousel/Pager/index.tsx b/src/components/Attachments/AttachmentCarousel/Pager/index.tsx
index 92b898226b8b..a2da3e7e90dd 100644
--- a/src/components/Attachments/AttachmentCarousel/Pager/index.tsx
+++ b/src/components/Attachments/AttachmentCarousel/Pager/index.tsx
@@ -48,11 +48,13 @@ type AttachmentCarouselPagerProps = {
 
     /** Callback for attachment errors */
     onAttachmentError?: (source: AttachmentSource) => void;
+
+    /** Reference to the outer element */
+    ref?: ForwardedRef<AttachmentCarouselPagerHandle>;
 };
 
 function AttachmentCarouselPager(
-    {items, activeAttachmentID, initialPage, setShouldShowArrows, onPageSelected, onSwipeDown, reportID, onAttachmentError}: AttachmentCarouselPagerProps,
-    ref: ForwardedRef<AttachmentCarouselPagerHandle>,
+    {items, activeAttachmentID, initialPage, setShouldShowArrows, onPageSelected, onSwipeDown, reportID, onAttachmentError, ref}: AttachmentCarouselPagerProps,
 ) {
     const {handleTap, handleScaleChange, isScrollEnabled} = useCarouselContextEvents(setShouldShowArrows);
     const styles = useThemeStyles();
@@ -153,5 +155,5 @@ function AttachmentCarouselPager(
 }
 AttachmentCarouselPager.displayName = 'AttachmentCarouselPager';
 
-export default React.forwardRef(AttachmentCarouselPager);
+export default AttachmentCarouselPager;
 export type {AttachmentCarouselPagerHandle};

From c8db1e8c6b163c8b25d3539adc5af587e4eb085f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Mon, 22 Sep 2025 16:03:13 +0200
Subject: [PATCH 25/29] Removed forwardRef from DatePicker component

---
 src/components/DatePicker/index.tsx | 7 +++----
 src/components/DatePicker/types.ts  | 8 +++++++-
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/components/DatePicker/index.tsx b/src/components/DatePicker/index.tsx
index f1d12bc6ab8e..5e3c575e865e 100644
--- a/src/components/DatePicker/index.tsx
+++ b/src/components/DatePicker/index.tsx
@@ -1,6 +1,5 @@
 import {format, setYear} from 'date-fns';
-import React, {forwardRef, useCallback, useEffect, useMemo, useRef, useState} from 'react';
-import type {ForwardedRef} from 'react';
+import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
 import {InteractionManager, View} from 'react-native';
 import * as Expensicons from '@components/Icon/Expensicons';
 import TextInput from '@components/TextInput';
@@ -33,8 +32,8 @@ function DatePicker(
         formID,
         autoFocus = false,
         shouldHideClearButton = false,
+        ref,
     }: DateInputWithPickerProps,
-    ref: ForwardedRef<BaseTextInputRef>,
 ) {
     const styles = useThemeStyles();
     const {windowHeight, windowWidth} = useWindowDimensions();
@@ -165,4 +164,4 @@ function DatePicker(
 
 DatePicker.displayName = 'DatePicker';
 
-export default forwardRef(DatePicker);
+export default DatePicker;
diff --git a/src/components/DatePicker/types.ts b/src/components/DatePicker/types.ts
index 1e4bafa5f1d9..7876736bf9ad 100644
--- a/src/components/DatePicker/types.ts
+++ b/src/components/DatePicker/types.ts
@@ -1,6 +1,7 @@
 import type PopoverWithMeasuredContentProps from '@components/PopoverWithMeasuredContent/types';
-import type {BaseTextInputProps} from '@components/TextInput/BaseTextInput/types';
+import type {BaseTextInputProps, BaseTextInputRef} from '@components/TextInput/BaseTextInput/types';
 import type {OnyxFormValuesMapping} from '@src/ONYXKEYS';
+import type { ForwardedRef } from 'react';
 
 type DatePickerBaseProps = {
     /**
@@ -53,6 +54,11 @@ type DateInputWithPickerProps = DatePickerBaseProps &
          * @default false
          */
         shouldHideClearButton?: boolean;
+
+        /**
+         * Reference to the outer element
+         */
+        ref?: ForwardedRef<BaseTextInputRef>;
     };
 
 type DatePickerProps = {

From d00274677f66b7f32e6ba3577cf0fb5a83f9e09b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Tue, 23 Sep 2025 12:17:19 +0200
Subject: [PATCH 26/29] Fixed failing spellcheck

---
 src/components/AmountPicker/types.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/components/AmountPicker/types.ts b/src/components/AmountPicker/types.ts
index 02e22c1f32f1..e9b3cb33941c 100644
--- a/src/components/AmountPicker/types.ts
+++ b/src/components/AmountPicker/types.ts
@@ -50,7 +50,7 @@ type AmountPickerProps = {
     /** Whether to show the tooltip text */
     shouldShowTooltips?: boolean;
 
-    /** Rreference to the outer element */
+    /** Reference to the outer element */
     ref?: ForwardedRef<View>;
 } & Pick<MenuItemBaseProps, 'rightLabel' | 'description'> &
     Pick<

From f2d37c842feba3f69205a11c0f91f765e76c71ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Tue, 7 Oct 2025 10:52:41 +0200
Subject: [PATCH 27/29] Removed unnecessary prop

---
 src/components/ActionSheetAwareScrollView/index.ios.tsx | 2 +-
 src/components/ActionSheetAwareScrollView/types.ts      | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/components/ActionSheetAwareScrollView/index.ios.tsx b/src/components/ActionSheetAwareScrollView/index.ios.tsx
index 784d7d9eb584..9fa26e898d6e 100644
--- a/src/components/ActionSheetAwareScrollView/index.ios.tsx
+++ b/src/components/ActionSheetAwareScrollView/index.ios.tsx
@@ -4,7 +4,7 @@ import {Actions, ActionSheetAwareScrollViewContext, ActionSheetAwareScrollViewPr
 import type {ActionSheetAwareScrollViewProps, RenderActionSheetAwareScrollViewComponent} from './types';
 import useActionSheetKeyboardSpacing from './useActionSheetKeyboardSpacing';
 
-function ActionSheetAwareScrollView({style, children, isInvertedScrollView, ref, ...props}: ActionSheetAwareScrollViewProps) {
+function ActionSheetAwareScrollView({style, children, ref, ...props}: ActionSheetAwareScrollViewProps) {
     const scrollViewAnimatedRef = useAnimatedRef<Reanimated.ScrollView>();
 
     const onRef = useCallback(
diff --git a/src/components/ActionSheetAwareScrollView/types.ts b/src/components/ActionSheetAwareScrollView/types.ts
index 5f8b27e19c21..c3b1a2ded8c9 100644
--- a/src/components/ActionSheetAwareScrollView/types.ts
+++ b/src/components/ActionSheetAwareScrollView/types.ts
@@ -3,8 +3,6 @@ import type {PropsWithChildren, Ref} from 'react';
 import type {ScrollView, ScrollViewProps} from 'react-native';
 
 type ActionSheetAwareScrollViewAnimationProps = {
-    /** Whether the child ScrollView is inverted */
-    isInvertedScrollView?: boolean;
     ref?: Ref<ScrollView>;
 };
 type ActionSheetAwareScrollViewProps = PropsWithChildren<ScrollViewProps> & ActionSheetAwareScrollViewAnimationProps;

From ec6d40f5c45f26ab43f4bd60cc98f413500c4f58 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Fri, 24 Oct 2025 13:56:51 +0200
Subject: [PATCH 28/29] Prettier run

---
 .../ActionSheetAwareScrollView/index.tsx      |  2 +-
 src/components/AddressSearch/index.tsx        | 66 +++++++++----------
 src/components/AmountPicker/types.ts          |  4 +-
 src/components/AmountWithoutCurrencyInput.tsx | 18 ++++-
 .../AttachmentCarousel/Pager/index.tsx        |  4 +-
 src/components/CheckboxWithLabel.tsx          | 15 ++++-
 src/components/ContextMenuItem.tsx            | 42 ++++++------
 src/components/CurrencySelector.tsx           | 24 ++++---
 src/components/DatePicker/index.tsx           | 38 +++++------
 src/components/DatePicker/types.ts            |  2 +-
 src/components/InteractiveStepWrapper.tsx     | 38 +++++------
 src/components/MagicCodeInput.tsx             | 38 +++++------
 .../Share/ShareTabParticipantsSelector.tsx    |  2 +-
 src/components/StateSelector.tsx              |  4 +-
 src/components/withToggleVisibilityView.tsx   |  3 +-
 15 files changed, 152 insertions(+), 148 deletions(-)

diff --git a/src/components/ActionSheetAwareScrollView/index.tsx b/src/components/ActionSheetAwareScrollView/index.tsx
index fbb8e601d852..aad22519466e 100644
--- a/src/components/ActionSheetAwareScrollView/index.tsx
+++ b/src/components/ActionSheetAwareScrollView/index.tsx
@@ -28,4 +28,4 @@ export default ActionSheetAwareScrollView;
  */
 const renderScrollComponent: RenderActionSheetAwareScrollViewComponent = undefined;
 
-export {renderScrollComponent, ActionSheetAwareScrollViewContext, ActionSheetAwareScrollViewProvider, Actions};
\ No newline at end of file
+export {renderScrollComponent, ActionSheetAwareScrollViewContext, ActionSheetAwareScrollViewProvider, Actions};
diff --git a/src/components/AddressSearch/index.tsx b/src/components/AddressSearch/index.tsx
index 1ed2a6666aba..ac27c32700b3 100644
--- a/src/components/AddressSearch/index.tsx
+++ b/src/components/AddressSearch/index.tsx
@@ -48,40 +48,38 @@ function isPlaceMatchForSearch(search: string, place: PredefinedPlace): boolean
 // VirtualizedList component with a VirtualizedList-backed instead
 LogBox.ignoreLogs(['VirtualizedLists should never be nested']);
 
-function AddressSearch(
-    {
-        canUseCurrentLocation = false,
-        containerStyles,
-        defaultValue,
-        errorText = '',
-        hint = '',
-        inputID,
-        limitSearchesToCountry,
-        label,
-        maxInputLength,
-        onFocus,
-        onBlur,
-        onInputChange,
-        onPress,
-        onCountryChange,
-        predefinedPlaces = [],
-        renamedInputKeys = {
-            street: 'addressStreet',
-            street2: 'addressStreet2',
-            city: 'addressCity',
-            state: 'addressState',
-            zipCode: 'addressZipCode',
-            lat: 'addressLat',
-            lng: 'addressLng',
-        },
-        resultTypes = 'address',
-        shouldSaveDraft = false,
-        value,
-        locationBias,
-        caretHidden,
-        ref,
-    }: AddressSearchProps,
-) {
+function AddressSearch({
+    canUseCurrentLocation = false,
+    containerStyles,
+    defaultValue,
+    errorText = '',
+    hint = '',
+    inputID,
+    limitSearchesToCountry,
+    label,
+    maxInputLength,
+    onFocus,
+    onBlur,
+    onInputChange,
+    onPress,
+    onCountryChange,
+    predefinedPlaces = [],
+    renamedInputKeys = {
+        street: 'addressStreet',
+        street2: 'addressStreet2',
+        city: 'addressCity',
+        state: 'addressState',
+        zipCode: 'addressZipCode',
+        lat: 'addressLat',
+        lng: 'addressLng',
+    },
+    resultTypes = 'address',
+    shouldSaveDraft = false,
+    value,
+    locationBias,
+    caretHidden,
+    ref,
+}: AddressSearchProps) {
     const theme = useTheme();
     const styles = useThemeStyles();
     const StyleUtils = useStyleUtils();
diff --git a/src/components/AmountPicker/types.ts b/src/components/AmountPicker/types.ts
index e9b3cb33941c..193e9f91fe0b 100644
--- a/src/components/AmountPicker/types.ts
+++ b/src/components/AmountPicker/types.ts
@@ -1,7 +1,7 @@
+import type {ForwardedRef} from 'react';
+import type {View} from 'react-native';
 import type {MenuItemBaseProps} from '@components/MenuItem';
 import type {NumberWithSymbolFormProps} from '@components/NumberWithSymbolForm';
-import type { ForwardedRef } from 'react';
-import type { View } from 'react-native';
 
 type AmountSelectorModalProps = {
     /** Whether the modal is visible */
diff --git a/src/components/AmountWithoutCurrencyInput.tsx b/src/components/AmountWithoutCurrencyInput.tsx
index 9acb5e85fb90..df0727a32182 100644
--- a/src/components/AmountWithoutCurrencyInput.tsx
+++ b/src/components/AmountWithoutCurrencyInput.tsx
@@ -22,9 +22,21 @@ type AmountFormProps = {
     toggleNegative?: () => void;
 } & Partial<BaseTextInputProps>;
 
-function AmountWithoutCurrencyInput(
-    {value: amount, shouldAllowNegative = false, inputID, name, defaultValue, accessibilityLabel, role, label, onInputChange, allowFlippingAmount, toggleNegative, ref, ...rest}: AmountFormProps,
-) {
+function AmountWithoutCurrencyInput({
+    value: amount,
+    shouldAllowNegative = false,
+    inputID,
+    name,
+    defaultValue,
+    accessibilityLabel,
+    role,
+    label,
+    onInputChange,
+    allowFlippingAmount,
+    toggleNegative,
+    ref,
+    ...rest
+}: AmountFormProps) {
     const {toLocaleDigit} = useLocalize();
     const separator = useMemo(
         () =>
diff --git a/src/components/Attachments/AttachmentCarousel/Pager/index.tsx b/src/components/Attachments/AttachmentCarousel/Pager/index.tsx
index a2da3e7e90dd..2fba0b903662 100644
--- a/src/components/Attachments/AttachmentCarousel/Pager/index.tsx
+++ b/src/components/Attachments/AttachmentCarousel/Pager/index.tsx
@@ -53,9 +53,7 @@ type AttachmentCarouselPagerProps = {
     ref?: ForwardedRef<AttachmentCarouselPagerHandle>;
 };
 
-function AttachmentCarouselPager(
-    {items, activeAttachmentID, initialPage, setShouldShowArrows, onPageSelected, onSwipeDown, reportID, onAttachmentError, ref}: AttachmentCarouselPagerProps,
-) {
+function AttachmentCarouselPager({items, activeAttachmentID, initialPage, setShouldShowArrows, onPageSelected, onSwipeDown, reportID, onAttachmentError, ref}: AttachmentCarouselPagerProps) {
     const {handleTap, handleScaleChange, isScrollEnabled} = useCarouselContextEvents(setShouldShowArrows);
     const styles = useThemeStyles();
     const pagerRef = useRef<PagerView>(null);
diff --git a/src/components/CheckboxWithLabel.tsx b/src/components/CheckboxWithLabel.tsx
index 1dca543681ff..b5ef4f2e974d 100644
--- a/src/components/CheckboxWithLabel.tsx
+++ b/src/components/CheckboxWithLabel.tsx
@@ -63,9 +63,18 @@ type CheckboxWithLabelProps = RequiredLabelProps & {
     ref?: ForwardedRef<View>;
 };
 
-function CheckboxWithLabel(
-    {errorText = '', isChecked: isCheckedProp = false, defaultValue = false, onInputChange = () => {}, LabelComponent, label, accessibilityLabel, style, value, ref}: CheckboxWithLabelProps,
-) {
+function CheckboxWithLabel({
+    errorText = '',
+    isChecked: isCheckedProp = false,
+    defaultValue = false,
+    onInputChange = () => {},
+    LabelComponent,
+    label,
+    accessibilityLabel,
+    style,
+    value,
+    ref,
+}: CheckboxWithLabelProps) {
     const styles = useThemeStyles();
     // We need to pick the first value that is strictly a boolean
     // https://github.com/Expensify/App/issues/16885#issuecomment-1520846065
diff --git a/src/components/ContextMenuItem.tsx b/src/components/ContextMenuItem.tsx
index 8f88dcb818b6..214e7bd616ec 100644
--- a/src/components/ContextMenuItem.tsx
+++ b/src/components/ContextMenuItem.tsx
@@ -70,28 +70,26 @@ type ContextMenuItemHandle = {
     triggerPressAndUpdateSuccess?: () => void;
 };
 
-function ContextMenuItem(
-    {
-        onPress,
-        successIcon,
-        successText = '',
-        icon,
-        text,
-        isMini = false,
-        description = '',
-        isAnonymousAction = false,
-        isFocused = false,
-        shouldLimitWidth = true,
-        wrapperStyle,
-        shouldPreventDefaultFocusOnPress = true,
-        buttonRef = {current: null},
-        onFocus = () => {},
-        onBlur = () => {},
-        disabled = false,
-        shouldShowLoadingSpinnerIcon = false,
-        ref,
-    }: ContextMenuItemProps,
-) {
+function ContextMenuItem({
+    onPress,
+    successIcon,
+    successText = '',
+    icon,
+    text,
+    isMini = false,
+    description = '',
+    isAnonymousAction = false,
+    isFocused = false,
+    shouldLimitWidth = true,
+    wrapperStyle,
+    shouldPreventDefaultFocusOnPress = true,
+    buttonRef = {current: null},
+    onFocus = () => {},
+    onBlur = () => {},
+    disabled = false,
+    shouldShowLoadingSpinnerIcon = false,
+    ref,
+}: ContextMenuItemProps) {
     const styles = useThemeStyles();
     const StyleUtils = useStyleUtils();
     const {windowWidth} = useWindowDimensions();
diff --git a/src/components/CurrencySelector.tsx b/src/components/CurrencySelector.tsx
index 1e55b361d6f7..2d6d6368e332 100644
--- a/src/components/CurrencySelector.tsx
+++ b/src/components/CurrencySelector.tsx
@@ -37,21 +37,19 @@ type CurrencySelectorProps = {
     shouldShowCurrencySymbol?: boolean;
 
     /** Reference to the outer element */
-    ref: ForwardedRef<View>,
+    ref: ForwardedRef<View>;
 };
 
-function CurrencySelector(
-    {
-        errorText = '',
-        value: currency,
-        onInputChange = () => {},
-        onBlur,
-        currencySelectorRoute = ROUTES.SETTINGS_CHANGE_CURRENCY,
-        label,
-        shouldShowCurrencySymbol = false,
-        ref,
-    }: CurrencySelectorProps,
-) {
+function CurrencySelector({
+    errorText = '',
+    value: currency,
+    onInputChange = () => {},
+    onBlur,
+    currencySelectorRoute = ROUTES.SETTINGS_CHANGE_CURRENCY,
+    label,
+    shouldShowCurrencySymbol = false,
+    ref,
+}: CurrencySelectorProps) {
     const styles = useThemeStyles();
     const {translate} = useLocalize();
 
diff --git a/src/components/DatePicker/index.tsx b/src/components/DatePicker/index.tsx
index 5e3c575e865e..0562e558e6dc 100644
--- a/src/components/DatePicker/index.tsx
+++ b/src/components/DatePicker/index.tsx
@@ -15,26 +15,24 @@ import type {DateInputWithPickerProps} from './types';
 
 const PADDING_MODAL_DATE_PICKER = 8;
 
-function DatePicker(
-    {
-        defaultValue,
-        disabled,
-        errorText,
-        inputID,
-        label,
-        minDate = setYear(new Date(), CONST.CALENDAR_PICKER.MIN_YEAR),
-        maxDate = setYear(new Date(), CONST.CALENDAR_PICKER.MAX_YEAR),
-        onInputChange,
-        onTouched = () => {},
-        placeholder,
-        value,
-        shouldSaveDraft = false,
-        formID,
-        autoFocus = false,
-        shouldHideClearButton = false,
-        ref,
-    }: DateInputWithPickerProps,
-) {
+function DatePicker({
+    defaultValue,
+    disabled,
+    errorText,
+    inputID,
+    label,
+    minDate = setYear(new Date(), CONST.CALENDAR_PICKER.MIN_YEAR),
+    maxDate = setYear(new Date(), CONST.CALENDAR_PICKER.MAX_YEAR),
+    onInputChange,
+    onTouched = () => {},
+    placeholder,
+    value,
+    shouldSaveDraft = false,
+    formID,
+    autoFocus = false,
+    shouldHideClearButton = false,
+    ref,
+}: DateInputWithPickerProps) {
     const styles = useThemeStyles();
     const {windowHeight, windowWidth} = useWindowDimensions();
     const {translate} = useLocalize();
diff --git a/src/components/DatePicker/types.ts b/src/components/DatePicker/types.ts
index 7876736bf9ad..24ef3e61f706 100644
--- a/src/components/DatePicker/types.ts
+++ b/src/components/DatePicker/types.ts
@@ -1,7 +1,7 @@
+import type {ForwardedRef} from 'react';
 import type PopoverWithMeasuredContentProps from '@components/PopoverWithMeasuredContent/types';
 import type {BaseTextInputProps, BaseTextInputRef} from '@components/TextInput/BaseTextInput/types';
 import type {OnyxFormValuesMapping} from '@src/ONYXKEYS';
-import type { ForwardedRef } from 'react';
 
 type DatePickerBaseProps = {
     /**
diff --git a/src/components/InteractiveStepWrapper.tsx b/src/components/InteractiveStepWrapper.tsx
index 6a327d0af025..dc5b54669509 100644
--- a/src/components/InteractiveStepWrapper.tsx
+++ b/src/components/InteractiveStepWrapper.tsx
@@ -1,4 +1,4 @@
-import type { ForwardedRef } from 'react';
+import type {ForwardedRef} from 'react';
 import React from 'react';
 import type {StyleProp, ViewStyle} from 'react-native';
 import {View} from 'react-native';
@@ -62,25 +62,23 @@ type InteractiveStepWrapperProps = {
     ref?: ForwardedRef<View>;
 };
 
-function InteractiveStepWrapper(
-    {
-        children,
-        wrapperID,
-        handleBackButtonPress,
-        headerTitle,
-        headerSubtitle,
-        startStepIndex,
-        stepNames,
-        shouldEnableMaxHeight,
-        shouldShowOfflineIndicator,
-        shouldShowOfflineIndicatorInWideScreen,
-        shouldEnablePickerAvoiding = false,
-        offlineIndicatorStyle,
-        shouldKeyboardOffsetBottomSafeAreaPadding,
-        enableEdgeToEdgeBottomSafeAreaPadding,
-        ref,
-    }: InteractiveStepWrapperProps,
-) {
+function InteractiveStepWrapper({
+    children,
+    wrapperID,
+    handleBackButtonPress,
+    headerTitle,
+    headerSubtitle,
+    startStepIndex,
+    stepNames,
+    shouldEnableMaxHeight,
+    shouldShowOfflineIndicator,
+    shouldShowOfflineIndicatorInWideScreen,
+    shouldEnablePickerAvoiding = false,
+    offlineIndicatorStyle,
+    shouldKeyboardOffsetBottomSafeAreaPadding,
+    enableEdgeToEdgeBottomSafeAreaPadding,
+    ref,
+}: InteractiveStepWrapperProps) {
     const styles = useThemeStyles();
 
     return (
diff --git a/src/components/MagicCodeInput.tsx b/src/components/MagicCodeInput.tsx
index 2519e395e508..dea019ea1cd0 100644
--- a/src/components/MagicCodeInput.tsx
+++ b/src/components/MagicCodeInput.tsx
@@ -99,7 +99,7 @@ type MagicCodeInputProps = {
 
     /** TestID for test */
     testID?: string;
-    
+
     /** Reference to the outer element */
     ref?: ForwardedRef<MagicCodeInputHandle>;
 };
@@ -135,25 +135,23 @@ const composeToString = (value: string[]): string => value.map((v) => v ?? CONST
 
 const getInputPlaceholderSlots = (length: number): number[] => Array.from(Array(length).keys());
 
-function MagicCodeInput(
-    {
-        value = '',
-        name = '',
-        autoFocus = true,
-        errorText = '',
-        shouldSubmitOnComplete = true,
-        onChangeText: onChangeTextProp = () => {},
-        onFocus: onFocusProps,
-        maxLength = CONST.MAGIC_CODE_LENGTH,
-        onFulfill = () => {},
-        isDisableKeyboard = false,
-        lastPressedDigit = '',
-        autoComplete,
-        hasError = false,
-        testID = '',
-        ref,
-    }: MagicCodeInputProps,
-) {
+function MagicCodeInput({
+    value = '',
+    name = '',
+    autoFocus = true,
+    errorText = '',
+    shouldSubmitOnComplete = true,
+    onChangeText: onChangeTextProp = () => {},
+    onFocus: onFocusProps,
+    maxLength = CONST.MAGIC_CODE_LENGTH,
+    onFulfill = () => {},
+    isDisableKeyboard = false,
+    lastPressedDigit = '',
+    autoComplete,
+    hasError = false,
+    testID = '',
+    ref,
+}: MagicCodeInputProps) {
     const styles = useThemeStyles();
     const StyleUtils = useStyleUtils();
     const inputRef = useRef<BaseTextInputRef | null>(null);
diff --git a/src/components/Share/ShareTabParticipantsSelector.tsx b/src/components/Share/ShareTabParticipantsSelector.tsx
index f810deca6ece..015576d5eb45 100644
--- a/src/components/Share/ShareTabParticipantsSelector.tsx
+++ b/src/components/Share/ShareTabParticipantsSelector.tsx
@@ -1,4 +1,4 @@
-import type { Ref } from 'react';
+import type {Ref} from 'react';
 import React from 'react';
 import {saveUnknownUserDetails} from '@libs/actions/Share';
 import Navigation from '@libs/Navigation/Navigation';
diff --git a/src/components/StateSelector.tsx b/src/components/StateSelector.tsx
index 97174bb5b116..c99c86f4b91d 100644
--- a/src/components/StateSelector.tsx
+++ b/src/components/StateSelector.tsx
@@ -40,9 +40,7 @@ type StateSelectorProps = {
     ref?: ForwardedRef<View>;
 };
 
-function StateSelector(
-    {errorText, onBlur, value: stateCode, label, onInputChange, wrapperStyle, stateSelectorRoute = ROUTES.SETTINGS_ADDRESS_STATE, ref}: StateSelectorProps,
-) {
+function StateSelector({errorText, onBlur, value: stateCode, label, onInputChange, wrapperStyle, stateSelectorRoute = ROUTES.SETTINGS_ADDRESS_STATE, ref}: StateSelectorProps) {
     const styles = useThemeStyles();
     const {translate} = useLocalize();
     const {state: stateFromUrl} = useGeographicalStateAndCountryFromRoute();
diff --git a/src/components/withToggleVisibilityView.tsx b/src/components/withToggleVisibilityView.tsx
index a56edb07f909..f9703eb34d24 100644
--- a/src/components/withToggleVisibilityView.tsx
+++ b/src/components/withToggleVisibilityView.tsx
@@ -9,8 +9,7 @@ type WithToggleVisibilityViewProps = {
     isVisible?: boolean;
 };
 
-export default function withToggleVisibilityView<TProps>(WrappedComponent: ComponentType<TProps>): 
-(props: TProps & WithToggleVisibilityViewProps) => ReactElement | null {
+export default function withToggleVisibilityView<TProps>(WrappedComponent: ComponentType<TProps>): (props: TProps & WithToggleVisibilityViewProps) => ReactElement | null {
     function WithToggleVisibilityView({isVisible = false, ...rest}: WithToggleVisibilityViewProps) {
         const styles = useThemeStyles();
         return (

From 69e9ed303c2e5a51512cbb5ad2acf7baadbb86bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Kali=C5=84ski?= <kubakalinski2@gmail.com>
Date: Thu, 6 Nov 2025 18:40:04 +0100
Subject: [PATCH 29/29] Removed unused forwardRef import

---
 src/components/CurrencySelector.tsx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/components/CurrencySelector.tsx b/src/components/CurrencySelector.tsx
index 2d6d6368e332..c7e00d4b1a17 100644
--- a/src/components/CurrencySelector.tsx
+++ b/src/components/CurrencySelector.tsx
@@ -1,6 +1,6 @@
 import {useIsFocused} from '@react-navigation/native';
 import type {ForwardedRef} from 'react';
-import React, {forwardRef, useEffect, useRef} from 'react';
+import React, {useEffect, useRef} from 'react';
 import type {View} from 'react-native';
 import useLocalize from '@hooks/useLocalize';
 import useThemeStyles from '@hooks/useThemeStyles';
