expo-snowui 1.3.0 → 1.3.1
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.
|
@@ -95,6 +95,10 @@ export function FocusContextProvider(props) {
|
|
|
95
95
|
const remoteCallbacksRef = React.useRef({});
|
|
96
96
|
const [currentLayer, setCurrentLayer] = React.useState('app');
|
|
97
97
|
let DEBUG_FOCUS = props.DEBUG_FOCUS;
|
|
98
|
+
let SCROLL_OFFSET = 200;
|
|
99
|
+
if (props.focusVerticalOffset) {
|
|
100
|
+
SCROLL_OFFSET = props.focusVersionOffset;
|
|
101
|
+
}
|
|
98
102
|
React.useEffect(() => {
|
|
99
103
|
focusedKeyRef.current = focusedKey;
|
|
100
104
|
}, [focusedKey]);
|
|
@@ -327,39 +331,50 @@ export function FocusContextProvider(props) {
|
|
|
327
331
|
element.requestTVFocus?.();
|
|
328
332
|
element.focus?.();
|
|
329
333
|
const scroll = props?.scrollViewRef?.current;
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
const
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
334
|
+
if (Platform.OS === 'web') {
|
|
335
|
+
if (element && scroll) {
|
|
336
|
+
const elementBounds = element.getBoundingClientRect();
|
|
337
|
+
const scrollBounds = scroll.getBoundingClientRect();
|
|
338
|
+
if (elementBounds.top < scrollBounds.top + SCROLL_OFFSET) {
|
|
339
|
+
scroll.scrollTop += elementBounds.top - scrollBounds.top - SCROLL_OFFSET;
|
|
340
|
+
} else if (elementBounds.bottom > scrollBounds.bottom) {
|
|
341
|
+
scroll.scrollTop += elementBounds.bottom - scrollBounds.bottom + SCROLL_OFFSET;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
} else {
|
|
345
|
+
const node = findNodeHandle(element);
|
|
346
|
+
if (scroll && node) {
|
|
347
|
+
const scrollHandle = typeof scroll.getNativeScrollRef === 'function' ? findNodeHandle(scroll.getNativeScrollRef()) : findNodeHandle(scroll);
|
|
348
|
+
if (scrollHandle) {
|
|
349
|
+
UIManager.measureLayout(node, scrollHandle, err => {
|
|
350
|
+
if (DEBUG_FOCUS === 'verbose') {
|
|
351
|
+
prettyLog({
|
|
352
|
+
action: 'focusOn',
|
|
353
|
+
error: 'Measurement error',
|
|
354
|
+
err
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
}, (x, y, width, height) => {
|
|
358
|
+
const viewportHeight = Dimensions.get('window').height;
|
|
359
|
+
const currentOffsetY = scroll?.scrollProperties?.offset || 0;
|
|
360
|
+
const top = y;
|
|
361
|
+
const bottom = y + height;
|
|
362
|
+
const viewTop = currentOffsetY;
|
|
363
|
+
const viewBottom = currentOffsetY + viewportHeight;
|
|
364
|
+
if (top - SCROLL_OFFSET < viewTop) {
|
|
365
|
+
scroll.scrollTo?.({
|
|
366
|
+
y: Math.max(top - SCROLL_OFFSET, 0),
|
|
367
|
+
animated: false
|
|
368
|
+
});
|
|
369
|
+
} else if (bottom > viewBottom) {
|
|
370
|
+
const target = bottom - viewportHeight + SCROLL_OFFSET;
|
|
371
|
+
scroll.scrollTo?.({
|
|
372
|
+
y: target,
|
|
373
|
+
animated: false
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
}
|
|
363
378
|
}
|
|
364
379
|
}
|
|
365
380
|
setFocusedKey(focusKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_","Platform","useTVEventHandler","Keyboard","findNodeHandle","UIManager","Dimensions","SnowSafeArea","jsx","_jsx","FocusContext","createContext","useFocusContext","value","useContext","Error","getCircularReplacer","seen","WeakSet","key","indexOf","has","add","prettyLog","payload","OS","console","log","JSON","stringify","emptyLayers","layerName","refs","directions","FocusContextProvider","props","focusedKey","setFocusedKey","useState","focusedKeyRef","useRef","focusLayers","setFocusLayers","focusLayersRef","remoteCallbacks","setRemoteCallbacks","remoteCallbacksRef","currentLayer","setCurrentLayer","DEBUG_FOCUS","useEffect","current","topLayer","at","action","shouldFocus","hasOwnProperty","focusStartKey","focusStartElementRef","prev","result","hasFocusedStart","focusOn","isFocused","elementFocusKey","isFocusedLayer","pushFocusLayer","layerIsUncloned","push","isUncloned","popFocusLayer","pop","useFocusLayer","name","useLayoutEffect","useFocusWiring","elementProps","addFocusMap","elementRef","focusStart","focusKey","focusDown","focusUp","focusRight","focusLeft","clearFocusLayers","element","onPress","onLongPress","focus","focusLayer","length","merge","requestTVFocus","scroll","scrollViewRef","node","scrollHandle","getNativeScrollRef","measureLayout","err","error","x","y","width","height","viewportHeight","get","verticalOffset","currentOffsetY","scrollProperties","offset","top","bottom","viewTop","viewBottom","scrollTo","Math","max","animated","target","moveFocus","direction","isVisible","sourceKey","destinationKey","request","normalDestination","isGridCell","split","replace","moveFocusRight","moveFocusLeft","moveFocusUp","moveFocusDown","focusedElementAction","focusMap","shouldNotPress","kind","keyboardVisible","focusAction","focusPress","focusLongPress","isTV","remoteHandler","remoteEvent","callbacks","eventType","eventKeyAction","callback","Object","entries","focusKeyboardHandler","event","window","addEventListener","removeEventListener","readFocusProps","focusProps","tvRemoteProps","focusable","hasTVPreferredFocus","focusContext","Provider","style","flex","children"],"sourceRoot":"../../../src","sources":["context/snow-focus-context.js"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","_","Platform","useTVEventHandler","Keyboard","findNodeHandle","UIManager","Dimensions","SnowSafeArea","jsx","_jsx","FocusContext","createContext","useFocusContext","value","useContext","Error","getCircularReplacer","seen","WeakSet","key","indexOf","has","add","prettyLog","payload","OS","console","log","JSON","stringify","emptyLayers","layerName","refs","directions","FocusContextProvider","props","focusedKey","setFocusedKey","useState","focusedKeyRef","useRef","focusLayers","setFocusLayers","focusLayersRef","remoteCallbacks","setRemoteCallbacks","remoteCallbacksRef","currentLayer","setCurrentLayer","DEBUG_FOCUS","SCROLL_OFFSET","focusVerticalOffset","focusVersionOffset","useEffect","current","topLayer","at","action","shouldFocus","hasOwnProperty","focusStartKey","focusStartElementRef","prev","result","hasFocusedStart","focusOn","isFocused","elementFocusKey","isFocusedLayer","pushFocusLayer","layerIsUncloned","push","isUncloned","popFocusLayer","pop","useFocusLayer","name","useLayoutEffect","useFocusWiring","elementProps","addFocusMap","elementRef","focusStart","focusKey","focusDown","focusUp","focusRight","focusLeft","clearFocusLayers","element","onPress","onLongPress","focus","focusLayer","length","merge","requestTVFocus","scroll","scrollViewRef","elementBounds","getBoundingClientRect","scrollBounds","top","scrollTop","bottom","node","scrollHandle","getNativeScrollRef","measureLayout","err","error","x","y","width","height","viewportHeight","get","currentOffsetY","scrollProperties","offset","viewTop","viewBottom","scrollTo","Math","max","animated","target","moveFocus","direction","isVisible","sourceKey","destinationKey","request","normalDestination","isGridCell","split","replace","moveFocusRight","moveFocusLeft","moveFocusUp","moveFocusDown","focusedElementAction","focusMap","shouldNotPress","kind","keyboardVisible","focusAction","focusPress","focusLongPress","isTV","remoteHandler","remoteEvent","callbacks","eventType","eventKeyAction","callback","Object","entries","focusKeyboardHandler","event","window","addEventListener","removeEventListener","readFocusProps","focusProps","tvRemoteProps","focusable","hasTVPreferredFocus","focusContext","Provider","style","flex","children"],"sourceRoot":"../../../src","sources":["context/snow-focus-context.js"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -102,6 +102,10 @@ export function FocusContextProvider(props) {
|
|
|
102
102
|
const remoteCallbacksRef = React.useRef({});
|
|
103
103
|
const [currentLayer, setCurrentLayer] = React.useState('app')
|
|
104
104
|
let DEBUG_FOCUS = props.DEBUG_FOCUS
|
|
105
|
+
let SCROLL_OFFSET = 200
|
|
106
|
+
if (props.focusVerticalOffset) {
|
|
107
|
+
SCROLL_OFFSET = props.focusVersionOffset
|
|
108
|
+
}
|
|
105
109
|
|
|
106
110
|
React.useEffect(() => {
|
|
107
111
|
focusedKeyRef.current = focusedKey
|
|
@@ -305,43 +309,56 @@ export function FocusContextProvider(props) {
|
|
|
305
309
|
element.focus?.();
|
|
306
310
|
|
|
307
311
|
const scroll = props?.scrollViewRef?.current;
|
|
308
|
-
const node = findNodeHandle(element);
|
|
309
|
-
|
|
310
|
-
if (scroll && node) {
|
|
311
|
-
const scrollHandle =
|
|
312
|
-
typeof scroll.getNativeScrollRef === 'function'
|
|
313
|
-
? findNodeHandle(scroll.getNativeScrollRef())
|
|
314
|
-
: findNodeHandle(scroll);
|
|
315
|
-
|
|
316
|
-
if (scrollHandle) {
|
|
317
|
-
UIManager.measureLayout(
|
|
318
|
-
node,
|
|
319
|
-
scrollHandle,
|
|
320
|
-
(err) => {
|
|
321
|
-
if (DEBUG_FOCUS === 'verbose') {
|
|
322
|
-
prettyLog({ action: 'focusOn', error: 'Measurement error', err });
|
|
323
|
-
}
|
|
324
|
-
},
|
|
325
|
-
(x, y, width, height) => {
|
|
326
|
-
const viewportHeight = Dimensions.get('window').height;
|
|
327
|
-
const verticalOffset = 200;
|
|
328
|
-
|
|
329
|
-
const currentOffsetY = scroll?.scrollProperties?.offset || 0;
|
|
330
|
-
|
|
331
|
-
const top = y;
|
|
332
|
-
const bottom = y + height;
|
|
333
312
|
|
|
334
|
-
|
|
335
|
-
|
|
313
|
+
if (Platform.OS === 'web') {
|
|
314
|
+
if (element && scroll) {
|
|
315
|
+
const elementBounds = element.getBoundingClientRect();
|
|
316
|
+
const scrollBounds = scroll.getBoundingClientRect();
|
|
336
317
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
318
|
+
if (elementBounds.top < scrollBounds.top + SCROLL_OFFSET) {
|
|
319
|
+
scroll.scrollTop += elementBounds.top - scrollBounds.top - SCROLL_OFFSET;
|
|
320
|
+
} else if (elementBounds.bottom > scrollBounds.bottom) {
|
|
321
|
+
scroll.scrollTop += elementBounds.bottom - scrollBounds.bottom + SCROLL_OFFSET;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
} else {
|
|
325
|
+
const node = findNodeHandle(element);
|
|
326
|
+
|
|
327
|
+
if (scroll && node) {
|
|
328
|
+
const scrollHandle =
|
|
329
|
+
typeof scroll.getNativeScrollRef === 'function'
|
|
330
|
+
? findNodeHandle(scroll.getNativeScrollRef())
|
|
331
|
+
: findNodeHandle(scroll);
|
|
332
|
+
|
|
333
|
+
if (scrollHandle) {
|
|
334
|
+
UIManager.measureLayout(
|
|
335
|
+
node,
|
|
336
|
+
scrollHandle,
|
|
337
|
+
(err) => {
|
|
338
|
+
if (DEBUG_FOCUS === 'verbose') {
|
|
339
|
+
prettyLog({ action: 'focusOn', error: 'Measurement error', err });
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
(x, y, width, height) => {
|
|
343
|
+
const viewportHeight = Dimensions.get('window').height;
|
|
344
|
+
|
|
345
|
+
const currentOffsetY = scroll?.scrollProperties?.offset || 0;
|
|
346
|
+
|
|
347
|
+
const top = y;
|
|
348
|
+
const bottom = y + height;
|
|
349
|
+
|
|
350
|
+
const viewTop = currentOffsetY;
|
|
351
|
+
const viewBottom = currentOffsetY + viewportHeight;
|
|
352
|
+
|
|
353
|
+
if (top - SCROLL_OFFSET < viewTop) {
|
|
354
|
+
scroll.scrollTo?.({ y: Math.max(top - SCROLL_OFFSET, 0), animated: false });
|
|
355
|
+
} else if (bottom > viewBottom) {
|
|
356
|
+
const target = bottom - viewportHeight + SCROLL_OFFSET;
|
|
357
|
+
scroll.scrollTo?.({ y: target, animated: false });
|
|
358
|
+
}
|
|
342
359
|
}
|
|
343
|
-
|
|
344
|
-
|
|
360
|
+
);
|
|
361
|
+
}
|
|
345
362
|
}
|
|
346
363
|
}
|
|
347
364
|
|