@@ -19,9 +19,9 @@ import OfflineIndicator from '@components/OfflineIndicator';
1919import OfflineWithFeedback from '@components/OfflineWithFeedback' ;
2020import { usePersonalDetails } from '@components/OnyxListItemProvider' ;
2121import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails' ;
22- import useDebounce from '@hooks/useDebounce' ;
2322import useHandleExceedMaxCommentLength from '@hooks/useHandleExceedMaxCommentLength' ;
2423import useHandleExceedMaxTaskTitleLength from '@hooks/useHandleExceedMaxTaskTitleLength' ;
24+ import useIsScrollLikelyLayoutTriggered from '@hooks/useIsScrollLikelyLayoutTriggered' ;
2525import useLocalize from '@hooks/useLocalize' ;
2626import useNetwork from '@hooks/useNetwork' ;
2727import useOnyx from '@hooks/useOnyx' ;
@@ -155,25 +155,7 @@ function ReportActionCompose({
155155 } ) ;
156156 const [ isFullComposerAvailable , setIsFullComposerAvailable ] = useState ( isComposerFullSize ) ;
157157
158- // A flag to indicate whether the onScroll callback is likely triggered by a layout change (caused by text change) or not
159- const isScrollLikelyLayoutTriggered = useRef ( false ) ;
160-
161- /**
162- * Reset isScrollLikelyLayoutTriggered to false.
163- *
164- * The function is debounced with a handpicked wait time to address 2 issues:
165- * 1. There is a slight delay between onChangeText and onScroll
166- * 2. Layout change will trigger onScroll multiple times
167- */
168- const debouncedLowerIsScrollLikelyLayoutTriggered = useDebounce (
169- useCallback ( ( ) => ( isScrollLikelyLayoutTriggered . current = false ) , [ ] ) ,
170- 500 ,
171- ) ;
172-
173- const raiseIsScrollLikelyLayoutTriggered = useCallback ( ( ) => {
174- isScrollLikelyLayoutTriggered . current = true ;
175- debouncedLowerIsScrollLikelyLayoutTriggered ( ) ;
176- } , [ debouncedLowerIsScrollLikelyLayoutTriggered ] ) ;
158+ const { isScrollLayoutTriggered, raiseIsScrollLayoutTriggered} = useIsScrollLikelyLayoutTriggered ( ) ;
177159
178160 const [ isCommentEmpty , setIsCommentEmpty ] = useState ( ( ) => {
179161 const draftComment = getDraftComment ( reportID ) ;
@@ -534,7 +516,7 @@ function ReportActionCompose({
534516 setMenuVisibility = { setMenuVisibility }
535517 isMenuVisible = { isMenuVisible }
536518 onTriggerAttachmentPicker = { onTriggerAttachmentPicker }
537- raiseIsScrollLikelyLayoutTriggered = { raiseIsScrollLikelyLayoutTriggered }
519+ raiseIsScrollLikelyLayoutTriggered = { raiseIsScrollLayoutTriggered }
538520 onAddActionPressed = { onAddActionPressed }
539521 onItemSelected = { onItemSelected }
540522 onCanceledAttachmentPicker = { ( ) => {
@@ -555,8 +537,8 @@ function ReportActionCompose({
555537 } }
556538 suggestionsRef = { suggestionsRef }
557539 isNextModalWillOpenRef = { isNextModalWillOpenRef }
558- isScrollLikelyLayoutTriggered = { isScrollLikelyLayoutTriggered }
559- raiseIsScrollLikelyLayoutTriggered = { raiseIsScrollLikelyLayoutTriggered }
540+ isScrollLikelyLayoutTriggered = { isScrollLayoutTriggered }
541+ raiseIsScrollLikelyLayoutTriggered = { raiseIsScrollLayoutTriggered }
560542 reportID = { reportID }
561543 policyID = { report ?. policyID }
562544 includeChronos = { chatIncludesChronos ( report ) }
0 commit comments