react-native-auto-positioned-popup 1.2.12 → 1.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AutoPositionedPopup.d.ts.map +1 -1
- package/lib/AutoPositionedPopup.js +230 -30
- package/lib/AutoPositionedPopup.js.map +1 -1
- package/lib/AutoPositionedPopupProps.d.ts +23 -1
- package/lib/AutoPositionedPopupProps.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/AutoPositionedPopup.tsx +253 -24
- package/src/AutoPositionedPopupProps.ts +23 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoPositionedPopup.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAYN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AutoPositionedPopup.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAYN,MAAM,OAAO,CAAC;AAgBf,OAAO,EAAC,wBAAwB,EAAqB,MAAM,4BAA4B,CAAC;AA6QxF,QAAA,MAAM,mBAAmB,qFAmmCxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState, } from 'react';
|
|
2
|
-
import { Dimensions, Keyboard, Platform, StatusBar, Text, TextInput as RNTextInput, TouchableOpacity, View, } from 'react-native';
|
|
2
|
+
import { Dimensions, findNodeHandle, Keyboard, Platform, StatusBar, Text, TextInput as RNTextInput, TouchableOpacity, View, } from 'react-native';
|
|
3
3
|
import { AdvancedFlatList } from 'react-native-advanced-flatlist';
|
|
4
4
|
import styles from './AutoPositionedPopup.style';
|
|
5
5
|
import { useRootView } from './RootViewContext';
|
|
@@ -184,7 +184,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
184
184
|
return res;
|
|
185
185
|
}, renderItem, onItemSelected, localSearch = false, pageSize = 20, selectedItem, useTextInput = false, btwChildren, CustomRow = ({ children }) => <View>{children}</View>, keyExtractor = (item) => String((item === null || item === void 0 ? void 0 : item.id) || ''), AutoPositionedPopupBtnDisabled = false, forceRemoveAllRootViewOnItemSelected = false, centerDisplay = false, selectedItemBackgroundColor = 'rgba(116, 116, 128, 0.08)',
|
|
186
186
|
// textAlign = 'right',
|
|
187
|
-
CustomPopView = undefined, CustomPopViewStyle, showListEmptyComponent = true, emptyText = '', onChangeText, themeMode = 'light', } = props;
|
|
187
|
+
CustomPopView = undefined, CustomPopViewStyle, showListEmptyComponent = true, emptyText = '', onChangeText, themeMode = 'light', parentScrollViewRef, scrollExtraHeight = 100, } = props;
|
|
188
188
|
// State management similar to project implementation
|
|
189
189
|
const [state, setState] = useState({
|
|
190
190
|
isFocus: false,
|
|
@@ -203,6 +203,8 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
203
203
|
const keyboardVisibleRef = useRef(false);
|
|
204
204
|
const refAutoPositionedPopup = useRef(null);
|
|
205
205
|
const ref_searchQuery = useRef('');
|
|
206
|
+
// Store trigger button position when clicked (before it's replaced by TextInput)
|
|
207
|
+
const triggerPositionRef = useRef(null);
|
|
206
208
|
// Add ref to track previous keyboard state to avoid false triggers during parent component re-renders
|
|
207
209
|
const prevIsKeyboardFullyShownRef = useRef(false);
|
|
208
210
|
const prevPropsRef = useRef({});
|
|
@@ -222,6 +224,9 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
222
224
|
// Refs for performance optimization
|
|
223
225
|
const containerRef = useRef(null);
|
|
224
226
|
const textInputRef = useRef(null);
|
|
227
|
+
// IMPORTANT: Use a separate ref for the actual trigger button to get accurate position
|
|
228
|
+
// The outer View with flex:1/height:100% may report incorrect positions in complex layouts
|
|
229
|
+
const triggerBtnRef = useRef(null);
|
|
225
230
|
const debounceTimerRef = useRef(null);
|
|
226
231
|
const searchQueryRef = useRef(''); // Use ref instead of state to avoid re-renders
|
|
227
232
|
// Refs to store latest values for useEffect without adding to dependency array
|
|
@@ -232,6 +237,126 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
232
237
|
ref_isKeyboardFullyShown.current = isKeyboardFullyShown;
|
|
233
238
|
}, [isKeyboardFullyShown]);
|
|
234
239
|
const theme = defaultTheme;
|
|
240
|
+
/**
|
|
241
|
+
* Scrolls the parent KeyboardAwareScrollView to make the trigger button visible
|
|
242
|
+
* when keyboard appears and may cover the trigger.
|
|
243
|
+
* Uses the triggerBtnRef to measure position and scrolls parent accordingly.
|
|
244
|
+
*/
|
|
245
|
+
const scrollParentToTrigger = useCallback(() => {
|
|
246
|
+
if (!(parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current) || !triggerBtnRef.current) {
|
|
247
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: No parentScrollViewRef or triggerBtnRef available');
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
// Use scrollToFocusedInput method from KeyboardAwareScrollView
|
|
251
|
+
// This method scrolls the ScrollView to make the specified node visible
|
|
252
|
+
const scrollView = parentScrollViewRef.current;
|
|
253
|
+
const nodeHandle = findNodeHandle(triggerBtnRef.current);
|
|
254
|
+
if (nodeHandle && scrollView) {
|
|
255
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: Scrolling to trigger button with extraHeight=', scrollExtraHeight);
|
|
256
|
+
// KeyboardAwareScrollView has a scrollToFocusedInput method that handles this
|
|
257
|
+
// However, it requires a ReactNode. We'll use scrollToPosition as an alternative.
|
|
258
|
+
// First, measure the trigger button position relative to the ScrollView
|
|
259
|
+
triggerBtnRef.current.measureInWindow((x, y, width, height) => {
|
|
260
|
+
if (y === undefined || height === undefined) {
|
|
261
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: measureInWindow returned undefined');
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: trigger position=', { x, y, width, height });
|
|
265
|
+
// Get keyboard height from Keyboard API
|
|
266
|
+
// On keyboard show, scroll to position that keeps trigger above keyboard
|
|
267
|
+
Keyboard.addListener('keyboardDidShow', (event) => {
|
|
268
|
+
const keyboardHeight = event.endCoordinates.height;
|
|
269
|
+
const screenHeight = Dimensions.get('window').height;
|
|
270
|
+
// Calculate if trigger is below keyboard
|
|
271
|
+
const triggerBottom = y + height;
|
|
272
|
+
const visibleAreaBottom = screenHeight - keyboardHeight;
|
|
273
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: keyboard data=', {
|
|
274
|
+
keyboardHeight,
|
|
275
|
+
screenHeight,
|
|
276
|
+
triggerBottom,
|
|
277
|
+
visibleAreaBottom,
|
|
278
|
+
needsScroll: triggerBottom > visibleAreaBottom
|
|
279
|
+
});
|
|
280
|
+
if (triggerBottom > visibleAreaBottom) {
|
|
281
|
+
// Calculate how much to scroll
|
|
282
|
+
const scrollAmount = triggerBottom - visibleAreaBottom + scrollExtraHeight;
|
|
283
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: scrolling by', scrollAmount);
|
|
284
|
+
// Use scrollForExtraHeightOnAndroid or scrollToPosition
|
|
285
|
+
if (typeof scrollView.scrollToPosition === 'function') {
|
|
286
|
+
// scrollToPosition(x, y, animated)
|
|
287
|
+
scrollView.scrollToPosition(0, scrollAmount, true);
|
|
288
|
+
}
|
|
289
|
+
else if (typeof scrollView.scrollToEnd === 'function') {
|
|
290
|
+
// Fallback: scroll to end might help in some cases
|
|
291
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: using scrollToEnd fallback');
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}, [parentScrollViewRef, scrollExtraHeight]);
|
|
298
|
+
/**
|
|
299
|
+
* Scroll parent KeyboardAwareScrollView to keep trigger visible above keyboard
|
|
300
|
+
* Uses stored trigger position (captured before TextInput replaces the trigger button)
|
|
301
|
+
*/
|
|
302
|
+
const scrollToTriggerWithMeasure = useCallback(() => {
|
|
303
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure called, tag=', tag, {
|
|
304
|
+
hasParentScrollViewRef: !!(parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current),
|
|
305
|
+
hasTriggerPosition: !!triggerPositionRef.current,
|
|
306
|
+
triggerPosition: triggerPositionRef.current
|
|
307
|
+
});
|
|
308
|
+
if (!(parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current)) {
|
|
309
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: parentScrollViewRef not available, tag=', tag);
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
// Use stored trigger position (captured when trigger was clicked)
|
|
313
|
+
const storedPosition = triggerPositionRef.current;
|
|
314
|
+
if (!storedPosition) {
|
|
315
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: no stored trigger position, tag=', tag);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
const scrollView = parentScrollViewRef.current;
|
|
319
|
+
const { y: triggerY, height: triggerHeight } = storedPosition;
|
|
320
|
+
// Get keyboard height and screen dimensions
|
|
321
|
+
const screenHeight = Dimensions.get('window').height;
|
|
322
|
+
// Calculate keyboard height (approximate - keyboard typically takes 40-50% of screen on Android)
|
|
323
|
+
// We'll use the trigger position to determine if scrolling is needed
|
|
324
|
+
const keyboardApproxHeight = screenHeight * 0.4; // Conservative estimate
|
|
325
|
+
const visibleAreaBottom = screenHeight - keyboardApproxHeight;
|
|
326
|
+
const triggerBottom = triggerY + triggerHeight;
|
|
327
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: calculations=', {
|
|
328
|
+
tag,
|
|
329
|
+
triggerY,
|
|
330
|
+
triggerHeight,
|
|
331
|
+
triggerBottom,
|
|
332
|
+
screenHeight,
|
|
333
|
+
visibleAreaBottom,
|
|
334
|
+
needsScroll: triggerBottom > visibleAreaBottom
|
|
335
|
+
});
|
|
336
|
+
// Check if trigger is below the visible area (covered by keyboard)
|
|
337
|
+
if (triggerBottom > visibleAreaBottom) {
|
|
338
|
+
// Calculate scroll amount to bring trigger above keyboard
|
|
339
|
+
const scrollAmount = triggerBottom - visibleAreaBottom + scrollExtraHeight;
|
|
340
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: scrolling, amount=', scrollAmount, 'tag=', tag);
|
|
341
|
+
// Use scrollForExtraHeightOnAndroid for KeyboardAwareScrollView
|
|
342
|
+
if (typeof scrollView.scrollForExtraHeightOnAndroid === 'function') {
|
|
343
|
+
scrollView.scrollForExtraHeightOnAndroid(scrollAmount);
|
|
344
|
+
}
|
|
345
|
+
else if (typeof scrollView.scrollToPosition === 'function') {
|
|
346
|
+
scrollView.scrollToPosition(0, scrollAmount, true);
|
|
347
|
+
}
|
|
348
|
+
else if ('scrollTo' in scrollView && typeof scrollView.scrollTo === 'function') {
|
|
349
|
+
// Fallback to standard ScrollView method
|
|
350
|
+
scrollView.scrollTo({ y: scrollAmount, animated: true });
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: no scroll method available on scrollView');
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: trigger already visible, no scroll needed, tag=', tag);
|
|
358
|
+
}
|
|
359
|
+
}, [parentScrollViewRef, scrollExtraHeight, tag]);
|
|
235
360
|
/**
|
|
236
361
|
* componentDidMount && componentWillUnmount
|
|
237
362
|
*/
|
|
@@ -279,7 +404,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
279
404
|
}
|
|
280
405
|
}, [selectedItem, state.selectedItem, tag]);
|
|
281
406
|
useEffect(() => {
|
|
282
|
-
var _a
|
|
407
|
+
var _a;
|
|
283
408
|
// Detect if keyboard state has actually changed to avoid false triggers during parent component re-renders
|
|
284
409
|
const keyboardStateChanged = prevIsKeyboardFullyShownRef.current !== isKeyboardFullyShown;
|
|
285
410
|
const propsChanged = prevPropsRef.current.CustomPopView !== CustomPopView ||
|
|
@@ -339,6 +464,16 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
339
464
|
const statusBarHeight = getStatusBarHeight();
|
|
340
465
|
if (useTextInput) {
|
|
341
466
|
if (isKeyboardFullyShown && hasAddedRootView.current && !hasShownRootView.current && state.isFocus) {
|
|
467
|
+
// KEYBOARD AVOIDANCE FIX: Scroll parent ScrollView to keep trigger visible
|
|
468
|
+
// When keyboard appears, the trigger button may be covered. If parentScrollViewRef
|
|
469
|
+
// is provided, scroll the parent to keep the trigger visible above the keyboard.
|
|
470
|
+
if (parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current) {
|
|
471
|
+
console.log('AutoPositionedPopup: Keyboard appeared, scrolling parent to keep trigger visible');
|
|
472
|
+
// Use a slight delay to ensure keyboard animation has started
|
|
473
|
+
setTimeout(() => {
|
|
474
|
+
scrollToTriggerWithMeasure();
|
|
475
|
+
}, 100);
|
|
476
|
+
}
|
|
342
477
|
// CRITICAL FIX FOR KEYBOARD POSITION CALCULATION
|
|
343
478
|
// Problem: When keyboard appears, the page shifts up but measureInWindow executes too early
|
|
344
479
|
// Solution: Wait for keyboard animation (300ms) + use requestAnimationFrame for next render frame
|
|
@@ -353,10 +488,12 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
353
488
|
// then requestAnimationFrame ensures measurement happens after next render frame
|
|
354
489
|
setTimeout(() => {
|
|
355
490
|
requestAnimationFrame(() => {
|
|
356
|
-
|
|
357
|
-
|
|
491
|
+
// CRITICAL FIX: Use triggerBtnRef (the actual TouchableOpacity) for measurement
|
|
492
|
+
// instead of refAutoPositionedPopup (the outer View with flex:1/height:100%)
|
|
493
|
+
const measureTarget = triggerBtnRef.current || refAutoPositionedPopup.current;
|
|
494
|
+
measureTarget === null || measureTarget === void 0 ? void 0 : measureTarget.measureInWindow((x, y, width, height) => {
|
|
358
495
|
var _a;
|
|
359
|
-
console.log('AutoPositionedPopup useTextInput measureInWindow (after 300ms + RAF, layout stable)=', { x, y, width, height });
|
|
496
|
+
console.log('AutoPositionedPopup useTextInput measureInWindow (after 300ms + RAF, layout stable)=', { x, y, width, height, usingTriggerRef: !!triggerBtnRef.current });
|
|
360
497
|
// CRITICAL FIX: Handle undefined values from measureInWindow
|
|
361
498
|
// This can happen during navigation transitions or when view is not yet mounted
|
|
362
499
|
if (x === undefined || y === undefined || width === undefined || height === undefined) {
|
|
@@ -390,21 +527,44 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
390
527
|
componentHeight: height,
|
|
391
528
|
listHeight: listLayout.height
|
|
392
529
|
});
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
//
|
|
396
|
-
//
|
|
397
|
-
|
|
398
|
-
//
|
|
530
|
+
// FIXED POSITIONING LOGIC (with keyboard):
|
|
531
|
+
// measureInWindow returns coordinates relative to the window (screen)
|
|
532
|
+
// The popup uses position: 'absolute' relative to RootViewProvider
|
|
533
|
+
// So we should NOT add statusBarHeight to the position calculation
|
|
534
|
+
//
|
|
535
|
+
// 1. Default: show popup ABOVE the input field
|
|
536
|
+
// Position popup so that the trigger remains VISIBLE below the popup
|
|
537
|
+
// Use (y + height * 0.7) as reference to compensate for measurement offset
|
|
538
|
+
// while still leaving trigger visible (30% of trigger height exposed)
|
|
539
|
+
let popupY = y + (height * 0.7) - listLayout.height;
|
|
540
|
+
console.log('AutoPositionedPopup with keyboard: initial calculation for ABOVE position:', {
|
|
541
|
+
componentY: y,
|
|
542
|
+
componentHeight: height,
|
|
543
|
+
popupHeight: listLayout.height,
|
|
544
|
+
popupY,
|
|
545
|
+
popupBottom: popupY + listLayout.height,
|
|
546
|
+
triggerTop: y,
|
|
547
|
+
statusBarHeight
|
|
548
|
+
});
|
|
549
|
+
// 2. Check if showing above would go behind status bar
|
|
399
550
|
if (popupY < statusBarHeight) {
|
|
400
|
-
console.log('AutoPositionedPopup with keyboard: would go
|
|
401
|
-
|
|
402
|
-
//
|
|
551
|
+
console.log('AutoPositionedPopup with keyboard: would go behind status bar, showing BELOW instead');
|
|
552
|
+
// Show BELOW the input field
|
|
553
|
+
// Since y + height represents the trigger's "reference bottom" (accounting for measurement offset),
|
|
554
|
+
// we need to add another height to position popup BELOW the actual trigger
|
|
555
|
+
popupY = y + height + height;
|
|
556
|
+
console.log('AutoPositionedPopup with keyboard: BELOW position calculated:', {
|
|
557
|
+
formula: 'y + 2*height',
|
|
558
|
+
y,
|
|
559
|
+
height,
|
|
560
|
+
popupY
|
|
561
|
+
});
|
|
562
|
+
// 3. Also check if showing below would go off the bottom
|
|
403
563
|
const maxY = screenHeight - listLayout.height;
|
|
404
564
|
if (popupY > maxY) {
|
|
405
565
|
// If both positions are problematic, clamp to visible area
|
|
406
566
|
console.log('AutoPositionedPopup with keyboard: both positions problematic, clamping to visible area');
|
|
407
|
-
popupY = Math.min(Math.max(
|
|
567
|
+
popupY = Math.min(Math.max(statusBarHeight, y - listLayout.height), maxY);
|
|
408
568
|
}
|
|
409
569
|
}
|
|
410
570
|
else {
|
|
@@ -442,8 +602,12 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
442
602
|
Keyboard.dismiss();
|
|
443
603
|
return;
|
|
444
604
|
}
|
|
445
|
-
|
|
446
|
-
|
|
605
|
+
// CRITICAL FIX: Use triggerBtnRef (the actual TouchableOpacity) for measurement
|
|
606
|
+
// instead of refAutoPositionedPopup (the outer View with flex:1/height:100%)
|
|
607
|
+
// This ensures accurate position when component is inside complex layouts like KeyboardAwareScrollView
|
|
608
|
+
const measureTarget = triggerBtnRef.current || refAutoPositionedPopup.current;
|
|
609
|
+
measureTarget === null || measureTarget === void 0 ? void 0 : measureTarget.measureInWindow((x, y, width, height) => {
|
|
610
|
+
console.log('AutoPositionedPopup !useTextInput measureInWindow=', { x, y, width, height, usingTriggerRef: !!triggerBtnRef.current });
|
|
447
611
|
// CRITICAL FIX: Handle undefined values from measureInWindow
|
|
448
612
|
// This can happen during navigation transitions or when view is not yet mounted
|
|
449
613
|
if (x === undefined || y === undefined || width === undefined || height === undefined) {
|
|
@@ -477,25 +641,53 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
477
641
|
statusBarHeight,
|
|
478
642
|
platform: Platform.OS
|
|
479
643
|
});
|
|
480
|
-
//
|
|
481
|
-
//
|
|
482
|
-
|
|
483
|
-
//
|
|
484
|
-
//
|
|
644
|
+
// FIXED POSITIONING LOGIC:
|
|
645
|
+
// The popup uses position: 'absolute' relative to the RootViewProvider container
|
|
646
|
+
// measureInWindow returns coordinates relative to the window (screen)
|
|
647
|
+
// So we should NOT add statusBarHeight to the position calculation
|
|
648
|
+
//
|
|
649
|
+
// 1. Default: show popup ABOVE the trigger element
|
|
650
|
+
// FIX: Use (componentY + componentHeight) as the trigger's bottom edge reference point
|
|
651
|
+
// This compensates for measurement inaccuracies when trigger is inside complex layouts (FlatList, ScrollView)
|
|
652
|
+
// The popup's bottom should be at the trigger's top with minimal gap (≤5px)
|
|
653
|
+
// Formula: popup_top = trigger_bottom - componentHeight - popupHeight
|
|
654
|
+
// popup_bottom = trigger_bottom - componentHeight = trigger_top
|
|
655
|
+
let popupY = componentY + componentHeight - popupHeight;
|
|
656
|
+
console.log('AutoPositionedPopup: initial calculation for ABOVE position:', {
|
|
657
|
+
componentY,
|
|
658
|
+
componentHeight,
|
|
659
|
+
popupHeight,
|
|
660
|
+
popupY,
|
|
661
|
+
triggerBottom: componentY + componentHeight,
|
|
662
|
+
statusBarHeight
|
|
663
|
+
});
|
|
664
|
+
// 2. Check if showing above would go off the top of screen (behind status bar)
|
|
485
665
|
if (popupY < statusBarHeight) {
|
|
486
|
-
console.log('AutoPositionedPopup: would
|
|
487
|
-
|
|
488
|
-
//
|
|
666
|
+
console.log('AutoPositionedPopup: would go behind status bar, showing BELOW instead');
|
|
667
|
+
// Show BELOW the trigger element
|
|
668
|
+
// Since componentY + componentHeight represents the trigger's "reference bottom" (accounting for measurement offset),
|
|
669
|
+
// we need to add another componentHeight to position popup BELOW the actual trigger
|
|
670
|
+
// Formula: popup top = componentY + (2 * componentHeight)
|
|
671
|
+
// - (componentY + componentHeight) = trigger's actual top (compensated)
|
|
672
|
+
// - + componentHeight = skip past trigger height to get to trigger's actual bottom
|
|
673
|
+
popupY = componentY + componentHeight + componentHeight;
|
|
674
|
+
console.log('AutoPositionedPopup: BELOW position calculated:', {
|
|
675
|
+
formula: 'componentY + 2*componentHeight',
|
|
676
|
+
componentY,
|
|
677
|
+
componentHeight,
|
|
678
|
+
popupY
|
|
679
|
+
});
|
|
680
|
+
// 3. Also check if showing below would go off the bottom of screen
|
|
489
681
|
const maxY = screenHeight - popupHeight;
|
|
490
682
|
if (popupY > maxY) {
|
|
491
683
|
// If both positions are problematic, clamp to visible area
|
|
492
|
-
//
|
|
684
|
+
// Prioritize showing as close to trigger as possible
|
|
493
685
|
console.log('AutoPositionedPopup: both positions problematic, clamping to visible area');
|
|
494
686
|
popupY = Math.min(Math.max(statusBarHeight, componentY - popupHeight), maxY);
|
|
495
687
|
}
|
|
496
688
|
}
|
|
497
689
|
else {
|
|
498
|
-
console.log('AutoPositionedPopup: showing ABOVE input field (preferred position
|
|
690
|
+
console.log('AutoPositionedPopup: showing ABOVE input field (preferred position)');
|
|
499
691
|
}
|
|
500
692
|
console.log('AutoPositionedPopup final position:', {
|
|
501
693
|
popupY,
|
|
@@ -564,7 +756,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
564
756
|
}
|
|
565
757
|
}
|
|
566
758
|
if (isKeyboardFullyShown) {
|
|
567
|
-
ref_isFocus.current = (
|
|
759
|
+
ref_isFocus.current = (_a = state.isFocus) !== null && _a !== void 0 ? _a : false;
|
|
568
760
|
if (isKeyboardFullyShown !== keyboardVisibleRef.current) {
|
|
569
761
|
keyboardVisibleRef.current = isKeyboardFullyShown;
|
|
570
762
|
if (isKeyboardFullyShown && textInputRef.current) {
|
|
@@ -801,7 +993,7 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
801
993
|
console.log('AutoPositionedPopup render tag=', tag); // Now safe - circular dependency fixed
|
|
802
994
|
return (<CustomRow>
|
|
803
995
|
<View style={[styles.contain, style]} ref={refAutoPositionedPopup}>
|
|
804
|
-
{!state.isFocus || !useTextInput ? (<TouchableOpacity style={[styles.AutoPositionedPopupBtn, AutoPositionedPopupBtnStyle]} disabled={AutoPositionedPopupBtnDisabled} onPress={() => {
|
|
996
|
+
{!state.isFocus || !useTextInput ? (<TouchableOpacity ref={triggerBtnRef} style={[styles.AutoPositionedPopupBtn, AutoPositionedPopupBtnStyle]} disabled={AutoPositionedPopupBtnDisabled} onPress={() => {
|
|
805
997
|
console.log('AutoPositionedPopup onPress=', {
|
|
806
998
|
tag,
|
|
807
999
|
'state.isFocus': state.isFocus,
|
|
@@ -812,6 +1004,14 @@ const AutoPositionedPopup = memo(forwardRef((props, parentRef) => {
|
|
|
812
1004
|
'selectedItem': selectedItem,
|
|
813
1005
|
'ref_isKeyboardFullyShown.current': ref_isKeyboardFullyShown.current
|
|
814
1006
|
});
|
|
1007
|
+
// Capture trigger button position BEFORE switching to TextInput
|
|
1008
|
+
// This is critical because triggerBtnRef will become null after isFocus=true
|
|
1009
|
+
if (triggerBtnRef.current && (parentScrollViewRef === null || parentScrollViewRef === void 0 ? void 0 : parentScrollViewRef.current)) {
|
|
1010
|
+
triggerBtnRef.current.measureInWindow((x, y, width, height) => {
|
|
1011
|
+
console.log('AutoPositionedPopup onPress: captured trigger position=', { tag, x, y, width, height });
|
|
1012
|
+
triggerPositionRef.current = { x, y, width, height };
|
|
1013
|
+
});
|
|
1014
|
+
}
|
|
815
1015
|
if (useTextInput) {
|
|
816
1016
|
const _addRootView = () => {
|
|
817
1017
|
if (!hasAddedRootView.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoPositionedPopup.js","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutoPositionedPopup.js","sourceRoot":"","sources":["../src/AutoPositionedPopup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { RefObject } from 'react';
|
|
2
2
|
import { StyleProp, TextInputProps, TextStyle, ViewStyle } from 'react-native';
|
|
3
3
|
import { TextInputSubmitEditingEventData } from 'react-native/Libraries/Components/TextInput/TextInput';
|
|
4
4
|
import { NativeSyntheticEvent } from 'react-native/Libraries/Types/CoreEventTypes';
|
|
5
|
+
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
|
|
5
6
|
export interface SelectedItem {
|
|
6
7
|
id: string;
|
|
7
8
|
title: string;
|
|
@@ -182,5 +183,26 @@ export interface AutoPositionedPopupProps {
|
|
|
182
183
|
*/
|
|
183
184
|
onChangeText?: ((text: string) => void) | undefined;
|
|
184
185
|
themeMode?: string | null | undefined;
|
|
186
|
+
/**
|
|
187
|
+
* Reference to parent KeyboardAwareScrollView for auto-scrolling when keyboard appears.
|
|
188
|
+
* When provided, the component will scroll the parent to keep the trigger button visible
|
|
189
|
+
* above the keyboard.
|
|
190
|
+
*
|
|
191
|
+
* Example usage:
|
|
192
|
+
* const scrollViewRef = useRef<KeyboardAwareScrollView>(null);
|
|
193
|
+
* <KeyboardAwareScrollView ref={scrollViewRef}>
|
|
194
|
+
* <RNAutoPositionedPopup
|
|
195
|
+
* parentScrollViewRef={scrollViewRef}
|
|
196
|
+
* ...
|
|
197
|
+
* />
|
|
198
|
+
* </KeyboardAwareScrollView>
|
|
199
|
+
*/
|
|
200
|
+
parentScrollViewRef?: RefObject<KeyboardAwareScrollView>;
|
|
201
|
+
/**
|
|
202
|
+
* Extra height to add when scrolling to make trigger visible.
|
|
203
|
+
* Useful for adding padding between the trigger and keyboard.
|
|
204
|
+
* Default: 100
|
|
205
|
+
*/
|
|
206
|
+
scrollExtraHeight?: number;
|
|
185
207
|
}
|
|
186
208
|
//# sourceMappingURL=AutoPositionedPopupProps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoPositionedPopupProps.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopupProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AutoPositionedPopupProps.d.ts","sourceRoot":"","sources":["../src/AutoPositionedPopupProps.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-auto-positioned-popup",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.14",
|
|
4
4
|
"description": "A highly customizable React Native auto-positioned popup component with search functionality and flexible styling options",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
},
|
|
78
78
|
"react-native": "lib/index.js",
|
|
79
79
|
"dependencies": {
|
|
80
|
-
"react-native-advanced-flatlist": "^1.1.2"
|
|
80
|
+
"react-native-advanced-flatlist": "^1.1.2",
|
|
81
|
+
"react-native-keyboard-aware-scroll-view": "^0.9.5"
|
|
81
82
|
}
|
|
82
83
|
}
|
|
@@ -13,12 +13,14 @@ import React, {
|
|
|
13
13
|
} from 'react';
|
|
14
14
|
import {
|
|
15
15
|
Dimensions,
|
|
16
|
+
findNodeHandle,
|
|
16
17
|
Keyboard,
|
|
17
18
|
Platform,
|
|
18
19
|
StatusBar,
|
|
19
20
|
Text,
|
|
20
21
|
TextInput as RNTextInput,
|
|
21
22
|
TouchableOpacity,
|
|
23
|
+
UIManager,
|
|
22
24
|
View,
|
|
23
25
|
} from 'react-native';
|
|
24
26
|
import {AdvancedFlatList, ListData, FetchDataParams} from 'react-native-advanced-flatlist';
|
|
@@ -346,6 +348,7 @@ const AutoPositionedPopup = memo(
|
|
|
346
348
|
selectedItemBackgroundColor = 'rgba(116, 116, 128, 0.08)',
|
|
347
349
|
// textAlign = 'right',
|
|
348
350
|
CustomPopView = undefined, CustomPopViewStyle, showListEmptyComponent = true, emptyText = '', onChangeText, themeMode = 'light',
|
|
351
|
+
parentScrollViewRef, scrollExtraHeight = 100,
|
|
349
352
|
} = props;
|
|
350
353
|
// State management similar to project implementation
|
|
351
354
|
const [state, setState] = useState<StateProps>({
|
|
@@ -365,6 +368,8 @@ const AutoPositionedPopup = memo(
|
|
|
365
368
|
const keyboardVisibleRef = useRef(false);
|
|
366
369
|
const refAutoPositionedPopup = useRef<View>(null);
|
|
367
370
|
const ref_searchQuery = useRef<string>('');
|
|
371
|
+
// Store trigger button position when clicked (before it's replaced by TextInput)
|
|
372
|
+
const triggerPositionRef = useRef<{x: number; y: number; width: number; height: number} | null>(null);
|
|
368
373
|
// Add ref to track previous keyboard state to avoid false triggers during parent component re-renders
|
|
369
374
|
const prevIsKeyboardFullyShownRef = useRef<boolean>(false);
|
|
370
375
|
const prevPropsRef = useRef<{
|
|
@@ -392,6 +397,9 @@ const AutoPositionedPopup = memo(
|
|
|
392
397
|
// Refs for performance optimization
|
|
393
398
|
const containerRef = useRef<View>(null);
|
|
394
399
|
const textInputRef = useRef<RNTextInput>(null);
|
|
400
|
+
// IMPORTANT: Use a separate ref for the actual trigger button to get accurate position
|
|
401
|
+
// The outer View with flex:1/height:100% may report incorrect positions in complex layouts
|
|
402
|
+
const triggerBtnRef = useRef<React.ElementRef<typeof TouchableOpacity>>(null);
|
|
395
403
|
const debounceTimerRef = useRef<NodeJS.Timeout | null>(null);
|
|
396
404
|
const searchQueryRef = useRef<string>(''); // Use ref instead of state to avoid re-renders
|
|
397
405
|
// Refs to store latest values for useEffect without adding to dependency array
|
|
@@ -402,6 +410,141 @@ const AutoPositionedPopup = memo(
|
|
|
402
410
|
ref_isKeyboardFullyShown.current = isKeyboardFullyShown;
|
|
403
411
|
}, [isKeyboardFullyShown])
|
|
404
412
|
const theme = defaultTheme;
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Scrolls the parent KeyboardAwareScrollView to make the trigger button visible
|
|
416
|
+
* when keyboard appears and may cover the trigger.
|
|
417
|
+
* Uses the triggerBtnRef to measure position and scrolls parent accordingly.
|
|
418
|
+
*/
|
|
419
|
+
const scrollParentToTrigger = useCallback(() => {
|
|
420
|
+
if (!parentScrollViewRef?.current || !triggerBtnRef.current) {
|
|
421
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: No parentScrollViewRef or triggerBtnRef available');
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
// Use scrollToFocusedInput method from KeyboardAwareScrollView
|
|
426
|
+
// This method scrolls the ScrollView to make the specified node visible
|
|
427
|
+
const scrollView = parentScrollViewRef.current;
|
|
428
|
+
const nodeHandle = findNodeHandle(triggerBtnRef.current);
|
|
429
|
+
|
|
430
|
+
if (nodeHandle && scrollView) {
|
|
431
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: Scrolling to trigger button with extraHeight=', scrollExtraHeight);
|
|
432
|
+
|
|
433
|
+
// KeyboardAwareScrollView has a scrollToFocusedInput method that handles this
|
|
434
|
+
// However, it requires a ReactNode. We'll use scrollToPosition as an alternative.
|
|
435
|
+
// First, measure the trigger button position relative to the ScrollView
|
|
436
|
+
triggerBtnRef.current.measureInWindow((x, y, width, height) => {
|
|
437
|
+
if (y === undefined || height === undefined) {
|
|
438
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: measureInWindow returned undefined');
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: trigger position=', { x, y, width, height });
|
|
443
|
+
|
|
444
|
+
// Get keyboard height from Keyboard API
|
|
445
|
+
// On keyboard show, scroll to position that keeps trigger above keyboard
|
|
446
|
+
Keyboard.addListener('keyboardDidShow', (event) => {
|
|
447
|
+
const keyboardHeight = event.endCoordinates.height;
|
|
448
|
+
const screenHeight = Dimensions.get('window').height;
|
|
449
|
+
|
|
450
|
+
// Calculate if trigger is below keyboard
|
|
451
|
+
const triggerBottom = y + height;
|
|
452
|
+
const visibleAreaBottom = screenHeight - keyboardHeight;
|
|
453
|
+
|
|
454
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: keyboard data=', {
|
|
455
|
+
keyboardHeight,
|
|
456
|
+
screenHeight,
|
|
457
|
+
triggerBottom,
|
|
458
|
+
visibleAreaBottom,
|
|
459
|
+
needsScroll: triggerBottom > visibleAreaBottom
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
if (triggerBottom > visibleAreaBottom) {
|
|
463
|
+
// Calculate how much to scroll
|
|
464
|
+
const scrollAmount = triggerBottom - visibleAreaBottom + scrollExtraHeight;
|
|
465
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: scrolling by', scrollAmount);
|
|
466
|
+
|
|
467
|
+
// Use scrollForExtraHeightOnAndroid or scrollToPosition
|
|
468
|
+
if (typeof scrollView.scrollToPosition === 'function') {
|
|
469
|
+
// scrollToPosition(x, y, animated)
|
|
470
|
+
scrollView.scrollToPosition(0, scrollAmount, true);
|
|
471
|
+
} else if (typeof scrollView.scrollToEnd === 'function') {
|
|
472
|
+
// Fallback: scroll to end might help in some cases
|
|
473
|
+
console.log('AutoPositionedPopup scrollParentToTrigger: using scrollToEnd fallback');
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
}, [parentScrollViewRef, scrollExtraHeight]);
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* Scroll parent KeyboardAwareScrollView to keep trigger visible above keyboard
|
|
483
|
+
* Uses stored trigger position (captured before TextInput replaces the trigger button)
|
|
484
|
+
*/
|
|
485
|
+
const scrollToTriggerWithMeasure = useCallback(() => {
|
|
486
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure called, tag=', tag, {
|
|
487
|
+
hasParentScrollViewRef: !!parentScrollViewRef?.current,
|
|
488
|
+
hasTriggerPosition: !!triggerPositionRef.current,
|
|
489
|
+
triggerPosition: triggerPositionRef.current
|
|
490
|
+
});
|
|
491
|
+
|
|
492
|
+
if (!parentScrollViewRef?.current) {
|
|
493
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: parentScrollViewRef not available, tag=', tag);
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
// Use stored trigger position (captured when trigger was clicked)
|
|
498
|
+
const storedPosition = triggerPositionRef.current;
|
|
499
|
+
if (!storedPosition) {
|
|
500
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: no stored trigger position, tag=', tag);
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
const scrollView = parentScrollViewRef.current;
|
|
505
|
+
const { y: triggerY, height: triggerHeight } = storedPosition;
|
|
506
|
+
|
|
507
|
+
// Get keyboard height and screen dimensions
|
|
508
|
+
const screenHeight = Dimensions.get('window').height;
|
|
509
|
+
|
|
510
|
+
// Calculate keyboard height (approximate - keyboard typically takes 40-50% of screen on Android)
|
|
511
|
+
// We'll use the trigger position to determine if scrolling is needed
|
|
512
|
+
const keyboardApproxHeight = screenHeight * 0.4; // Conservative estimate
|
|
513
|
+
const visibleAreaBottom = screenHeight - keyboardApproxHeight;
|
|
514
|
+
const triggerBottom = triggerY + triggerHeight;
|
|
515
|
+
|
|
516
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: calculations=', {
|
|
517
|
+
tag,
|
|
518
|
+
triggerY,
|
|
519
|
+
triggerHeight,
|
|
520
|
+
triggerBottom,
|
|
521
|
+
screenHeight,
|
|
522
|
+
visibleAreaBottom,
|
|
523
|
+
needsScroll: triggerBottom > visibleAreaBottom
|
|
524
|
+
});
|
|
525
|
+
|
|
526
|
+
// Check if trigger is below the visible area (covered by keyboard)
|
|
527
|
+
if (triggerBottom > visibleAreaBottom) {
|
|
528
|
+
// Calculate scroll amount to bring trigger above keyboard
|
|
529
|
+
const scrollAmount = triggerBottom - visibleAreaBottom + scrollExtraHeight;
|
|
530
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: scrolling, amount=', scrollAmount, 'tag=', tag);
|
|
531
|
+
|
|
532
|
+
// Use scrollForExtraHeightOnAndroid for KeyboardAwareScrollView
|
|
533
|
+
if (typeof scrollView.scrollForExtraHeightOnAndroid === 'function') {
|
|
534
|
+
scrollView.scrollForExtraHeightOnAndroid(scrollAmount);
|
|
535
|
+
} else if (typeof scrollView.scrollToPosition === 'function') {
|
|
536
|
+
scrollView.scrollToPosition(0, scrollAmount, true);
|
|
537
|
+
} else if ('scrollTo' in scrollView && typeof (scrollView as any).scrollTo === 'function') {
|
|
538
|
+
// Fallback to standard ScrollView method
|
|
539
|
+
(scrollView as any).scrollTo({ y: scrollAmount, animated: true });
|
|
540
|
+
} else {
|
|
541
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: no scroll method available on scrollView');
|
|
542
|
+
}
|
|
543
|
+
} else {
|
|
544
|
+
console.log('AutoPositionedPopup scrollToTriggerWithMeasure: trigger already visible, no scroll needed, tag=', tag);
|
|
545
|
+
}
|
|
546
|
+
}, [parentScrollViewRef, scrollExtraHeight, tag]);
|
|
547
|
+
|
|
405
548
|
/**
|
|
406
549
|
* componentDidMount && componentWillUnmount
|
|
407
550
|
*/
|
|
@@ -513,6 +656,17 @@ const AutoPositionedPopup = memo(
|
|
|
513
656
|
const statusBarHeight = getStatusBarHeight();
|
|
514
657
|
if (useTextInput) {
|
|
515
658
|
if (isKeyboardFullyShown && hasAddedRootView.current && !hasShownRootView.current && state.isFocus) {
|
|
659
|
+
// KEYBOARD AVOIDANCE FIX: Scroll parent ScrollView to keep trigger visible
|
|
660
|
+
// When keyboard appears, the trigger button may be covered. If parentScrollViewRef
|
|
661
|
+
// is provided, scroll the parent to keep the trigger visible above the keyboard.
|
|
662
|
+
if (parentScrollViewRef?.current) {
|
|
663
|
+
console.log('AutoPositionedPopup: Keyboard appeared, scrolling parent to keep trigger visible');
|
|
664
|
+
// Use a slight delay to ensure keyboard animation has started
|
|
665
|
+
setTimeout(() => {
|
|
666
|
+
scrollToTriggerWithMeasure();
|
|
667
|
+
}, 100);
|
|
668
|
+
}
|
|
669
|
+
|
|
516
670
|
// CRITICAL FIX FOR KEYBOARD POSITION CALCULATION
|
|
517
671
|
// Problem: When keyboard appears, the page shifts up but measureInWindow executes too early
|
|
518
672
|
// Solution: Wait for keyboard animation (300ms) + use requestAnimationFrame for next render frame
|
|
@@ -527,8 +681,11 @@ const AutoPositionedPopup = memo(
|
|
|
527
681
|
// then requestAnimationFrame ensures measurement happens after next render frame
|
|
528
682
|
setTimeout(() => {
|
|
529
683
|
requestAnimationFrame(() => {
|
|
530
|
-
|
|
531
|
-
|
|
684
|
+
// CRITICAL FIX: Use triggerBtnRef (the actual TouchableOpacity) for measurement
|
|
685
|
+
// instead of refAutoPositionedPopup (the outer View with flex:1/height:100%)
|
|
686
|
+
const measureTarget = triggerBtnRef.current || refAutoPositionedPopup.current;
|
|
687
|
+
measureTarget?.measureInWindow((x: number | undefined, y: number | undefined, width: number | undefined, height: number | undefined) => {
|
|
688
|
+
console.log('AutoPositionedPopup useTextInput measureInWindow (after 300ms + RAF, layout stable)=', {x, y, width, height, usingTriggerRef: !!triggerBtnRef.current});
|
|
532
689
|
// CRITICAL FIX: Handle undefined values from measureInWindow
|
|
533
690
|
// This can happen during navigation transitions or when view is not yet mounted
|
|
534
691
|
if (x === undefined || y === undefined || width === undefined || height === undefined) {
|
|
@@ -562,21 +719,47 @@ const AutoPositionedPopup = memo(
|
|
|
562
719
|
componentHeight: height,
|
|
563
720
|
listHeight: listLayout.height
|
|
564
721
|
});
|
|
565
|
-
//
|
|
566
|
-
//
|
|
567
|
-
//
|
|
568
|
-
//
|
|
569
|
-
|
|
570
|
-
//
|
|
722
|
+
// FIXED POSITIONING LOGIC (with keyboard):
|
|
723
|
+
// measureInWindow returns coordinates relative to the window (screen)
|
|
724
|
+
// The popup uses position: 'absolute' relative to RootViewProvider
|
|
725
|
+
// So we should NOT add statusBarHeight to the position calculation
|
|
726
|
+
//
|
|
727
|
+
// 1. Default: show popup ABOVE the input field
|
|
728
|
+
// Position popup so that the trigger remains VISIBLE below the popup
|
|
729
|
+
// Use (y + height * 0.7) as reference to compensate for measurement offset
|
|
730
|
+
// while still leaving trigger visible (30% of trigger height exposed)
|
|
731
|
+
let popupY = y + (height * 0.7) - listLayout.height;
|
|
732
|
+
|
|
733
|
+
console.log('AutoPositionedPopup with keyboard: initial calculation for ABOVE position:', {
|
|
734
|
+
componentY: y,
|
|
735
|
+
componentHeight: height,
|
|
736
|
+
popupHeight: listLayout.height,
|
|
737
|
+
popupY,
|
|
738
|
+
popupBottom: popupY + listLayout.height,
|
|
739
|
+
triggerTop: y,
|
|
740
|
+
statusBarHeight
|
|
741
|
+
});
|
|
742
|
+
|
|
743
|
+
// 2. Check if showing above would go behind status bar
|
|
571
744
|
if (popupY < statusBarHeight) {
|
|
572
|
-
console.log('AutoPositionedPopup with keyboard: would go
|
|
573
|
-
|
|
574
|
-
//
|
|
745
|
+
console.log('AutoPositionedPopup with keyboard: would go behind status bar, showing BELOW instead');
|
|
746
|
+
// Show BELOW the input field
|
|
747
|
+
// Since y + height represents the trigger's "reference bottom" (accounting for measurement offset),
|
|
748
|
+
// we need to add another height to position popup BELOW the actual trigger
|
|
749
|
+
popupY = y + height + height;
|
|
750
|
+
console.log('AutoPositionedPopup with keyboard: BELOW position calculated:', {
|
|
751
|
+
formula: 'y + 2*height',
|
|
752
|
+
y,
|
|
753
|
+
height,
|
|
754
|
+
popupY
|
|
755
|
+
});
|
|
756
|
+
|
|
757
|
+
// 3. Also check if showing below would go off the bottom
|
|
575
758
|
const maxY = screenHeight - listLayout.height;
|
|
576
759
|
if (popupY > maxY) {
|
|
577
760
|
// If both positions are problematic, clamp to visible area
|
|
578
761
|
console.log('AutoPositionedPopup with keyboard: both positions problematic, clamping to visible area');
|
|
579
|
-
popupY = Math.min(Math.max(
|
|
762
|
+
popupY = Math.min(Math.max(statusBarHeight, y - listLayout.height), maxY);
|
|
580
763
|
}
|
|
581
764
|
} else {
|
|
582
765
|
console.log('AutoPositionedPopup with keyboard: showing ABOVE input field (preferred position)');
|
|
@@ -617,8 +800,12 @@ const AutoPositionedPopup = memo(
|
|
|
617
800
|
Keyboard.dismiss();
|
|
618
801
|
return;
|
|
619
802
|
}
|
|
620
|
-
|
|
621
|
-
|
|
803
|
+
// CRITICAL FIX: Use triggerBtnRef (the actual TouchableOpacity) for measurement
|
|
804
|
+
// instead of refAutoPositionedPopup (the outer View with flex:1/height:100%)
|
|
805
|
+
// This ensures accurate position when component is inside complex layouts like KeyboardAwareScrollView
|
|
806
|
+
const measureTarget = triggerBtnRef.current || refAutoPositionedPopup.current;
|
|
807
|
+
measureTarget?.measureInWindow((x: number | undefined, y: number | undefined, width: number | undefined, height: number | undefined) => {
|
|
808
|
+
console.log('AutoPositionedPopup !useTextInput measureInWindow=', {x, y, width, height, usingTriggerRef: !!triggerBtnRef.current});
|
|
622
809
|
// CRITICAL FIX: Handle undefined values from measureInWindow
|
|
623
810
|
// This can happen during navigation transitions or when view is not yet mounted
|
|
624
811
|
if (x === undefined || y === undefined || width === undefined || height === undefined) {
|
|
@@ -652,24 +839,55 @@ const AutoPositionedPopup = memo(
|
|
|
652
839
|
statusBarHeight,
|
|
653
840
|
platform: Platform.OS
|
|
654
841
|
});
|
|
655
|
-
//
|
|
656
|
-
//
|
|
657
|
-
|
|
658
|
-
//
|
|
659
|
-
//
|
|
842
|
+
// FIXED POSITIONING LOGIC:
|
|
843
|
+
// The popup uses position: 'absolute' relative to the RootViewProvider container
|
|
844
|
+
// measureInWindow returns coordinates relative to the window (screen)
|
|
845
|
+
// So we should NOT add statusBarHeight to the position calculation
|
|
846
|
+
//
|
|
847
|
+
// 1. Default: show popup ABOVE the trigger element
|
|
848
|
+
// FIX: Use (componentY + componentHeight) as the trigger's bottom edge reference point
|
|
849
|
+
// This compensates for measurement inaccuracies when trigger is inside complex layouts (FlatList, ScrollView)
|
|
850
|
+
// The popup's bottom should be at the trigger's top with minimal gap (≤5px)
|
|
851
|
+
// Formula: popup_top = trigger_bottom - componentHeight - popupHeight
|
|
852
|
+
// popup_bottom = trigger_bottom - componentHeight = trigger_top
|
|
853
|
+
let popupY = componentY + componentHeight - popupHeight;
|
|
854
|
+
|
|
855
|
+
console.log('AutoPositionedPopup: initial calculation for ABOVE position:', {
|
|
856
|
+
componentY,
|
|
857
|
+
componentHeight,
|
|
858
|
+
popupHeight,
|
|
859
|
+
popupY,
|
|
860
|
+
triggerBottom: componentY + componentHeight,
|
|
861
|
+
statusBarHeight
|
|
862
|
+
});
|
|
863
|
+
|
|
864
|
+
// 2. Check if showing above would go off the top of screen (behind status bar)
|
|
660
865
|
if (popupY < statusBarHeight) {
|
|
661
|
-
console.log('AutoPositionedPopup: would
|
|
662
|
-
|
|
663
|
-
//
|
|
866
|
+
console.log('AutoPositionedPopup: would go behind status bar, showing BELOW instead');
|
|
867
|
+
// Show BELOW the trigger element
|
|
868
|
+
// Since componentY + componentHeight represents the trigger's "reference bottom" (accounting for measurement offset),
|
|
869
|
+
// we need to add another componentHeight to position popup BELOW the actual trigger
|
|
870
|
+
// Formula: popup top = componentY + (2 * componentHeight)
|
|
871
|
+
// - (componentY + componentHeight) = trigger's actual top (compensated)
|
|
872
|
+
// - + componentHeight = skip past trigger height to get to trigger's actual bottom
|
|
873
|
+
popupY = componentY + componentHeight + componentHeight;
|
|
874
|
+
console.log('AutoPositionedPopup: BELOW position calculated:', {
|
|
875
|
+
formula: 'componentY + 2*componentHeight',
|
|
876
|
+
componentY,
|
|
877
|
+
componentHeight,
|
|
878
|
+
popupY
|
|
879
|
+
});
|
|
880
|
+
|
|
881
|
+
// 3. Also check if showing below would go off the bottom of screen
|
|
664
882
|
const maxY = screenHeight - popupHeight;
|
|
665
883
|
if (popupY > maxY) {
|
|
666
884
|
// If both positions are problematic, clamp to visible area
|
|
667
|
-
//
|
|
885
|
+
// Prioritize showing as close to trigger as possible
|
|
668
886
|
console.log('AutoPositionedPopup: both positions problematic, clamping to visible area');
|
|
669
887
|
popupY = Math.min(Math.max(statusBarHeight, componentY - popupHeight), maxY);
|
|
670
888
|
}
|
|
671
889
|
} else {
|
|
672
|
-
console.log('AutoPositionedPopup: showing ABOVE input field (preferred position
|
|
890
|
+
console.log('AutoPositionedPopup: showing ABOVE input field (preferred position)');
|
|
673
891
|
}
|
|
674
892
|
console.log('AutoPositionedPopup final position:', {
|
|
675
893
|
popupY,
|
|
@@ -1061,6 +1279,7 @@ const AutoPositionedPopup = memo(
|
|
|
1061
1279
|
<View style={[styles.contain, style]} ref={refAutoPositionedPopup}>
|
|
1062
1280
|
{!state.isFocus || !useTextInput ? (
|
|
1063
1281
|
<TouchableOpacity
|
|
1282
|
+
ref={triggerBtnRef}
|
|
1064
1283
|
style={[styles.AutoPositionedPopupBtn, AutoPositionedPopupBtnStyle]}
|
|
1065
1284
|
disabled={AutoPositionedPopupBtnDisabled}
|
|
1066
1285
|
onPress={() => {
|
|
@@ -1074,6 +1293,16 @@ const AutoPositionedPopup = memo(
|
|
|
1074
1293
|
'selectedItem': selectedItem,
|
|
1075
1294
|
'ref_isKeyboardFullyShown.current': ref_isKeyboardFullyShown.current
|
|
1076
1295
|
});
|
|
1296
|
+
|
|
1297
|
+
// Capture trigger button position BEFORE switching to TextInput
|
|
1298
|
+
// This is critical because triggerBtnRef will become null after isFocus=true
|
|
1299
|
+
if (triggerBtnRef.current && parentScrollViewRef?.current) {
|
|
1300
|
+
triggerBtnRef.current.measureInWindow((x, y, width, height) => {
|
|
1301
|
+
console.log('AutoPositionedPopup onPress: captured trigger position=', {tag, x, y, width, height});
|
|
1302
|
+
triggerPositionRef.current = {x, y, width, height};
|
|
1303
|
+
});
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1077
1306
|
if (useTextInput) {
|
|
1078
1307
|
const _addRootView = () => {
|
|
1079
1308
|
if (!hasAddedRootView.current) {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, {RefObject} from 'react';
|
|
2
2
|
import {StyleProp, TextInputProps, TextStyle, ViewStyle} from 'react-native';
|
|
3
3
|
import {TextInputSubmitEditingEventData} from 'react-native/Libraries/Components/TextInput/TextInput';
|
|
4
4
|
import {NativeSyntheticEvent} from 'react-native/Libraries/Types/CoreEventTypes';
|
|
5
|
+
import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
|
|
5
6
|
|
|
6
7
|
export interface SelectedItem {
|
|
7
8
|
id: string;
|
|
@@ -188,4 +189,25 @@ export interface AutoPositionedPopupProps {
|
|
|
188
189
|
*/
|
|
189
190
|
onChangeText?: ((text: string) => void) | undefined;
|
|
190
191
|
themeMode?: string | null | undefined;//light | dark
|
|
192
|
+
/**
|
|
193
|
+
* Reference to parent KeyboardAwareScrollView for auto-scrolling when keyboard appears.
|
|
194
|
+
* When provided, the component will scroll the parent to keep the trigger button visible
|
|
195
|
+
* above the keyboard.
|
|
196
|
+
*
|
|
197
|
+
* Example usage:
|
|
198
|
+
* const scrollViewRef = useRef<KeyboardAwareScrollView>(null);
|
|
199
|
+
* <KeyboardAwareScrollView ref={scrollViewRef}>
|
|
200
|
+
* <RNAutoPositionedPopup
|
|
201
|
+
* parentScrollViewRef={scrollViewRef}
|
|
202
|
+
* ...
|
|
203
|
+
* />
|
|
204
|
+
* </KeyboardAwareScrollView>
|
|
205
|
+
*/
|
|
206
|
+
parentScrollViewRef?: RefObject<KeyboardAwareScrollView>;
|
|
207
|
+
/**
|
|
208
|
+
* Extra height to add when scrolling to make trigger visible.
|
|
209
|
+
* Useful for adding padding between the trigger and keyboard.
|
|
210
|
+
* Default: 100
|
|
211
|
+
*/
|
|
212
|
+
scrollExtraHeight?: number;
|
|
191
213
|
}
|