expo-snowui 1.1.2 → 1.1.4
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/module/component/snow-grid.js +11 -7
- package/lib/module/component/snow-grid.js.map +1 -1
- package/lib/module/context/snow-focus-context.js +27 -25
- package/lib/module/context/snow-focus-context.js.map +1 -1
- package/package.json +1 -1
- package/src/component/snow-grid.js +13 -8
- package/src/context/snow-focus-context.js +23 -21
|
@@ -65,17 +65,21 @@ export function SnowGrid(props) {
|
|
|
65
65
|
let row = Math.floor(index / itemsPerRow);
|
|
66
66
|
let column = index % itemsPerRow;
|
|
67
67
|
let focus = {};
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
if (child.props.focusKey) {
|
|
69
|
+
focus.focusKey = child.props.focusKey;
|
|
70
|
+
} else {
|
|
71
|
+
if (index === 0) {
|
|
72
72
|
focus.focusKey = props.focusKey;
|
|
73
|
+
} else {
|
|
74
|
+
focus.focusKey = `${props.focusKey}-row-${row}-column-${column}`;
|
|
73
75
|
}
|
|
74
|
-
|
|
76
|
+
}
|
|
77
|
+
if (child.props.focusStart) {
|
|
78
|
+
focus.focusStart = child.props.focusStart;
|
|
79
|
+
} else {
|
|
80
|
+
if (index === 0 && props.focusStart) {
|
|
75
81
|
focus.focusStart = true;
|
|
76
82
|
}
|
|
77
|
-
} else {
|
|
78
|
-
focus.focusKey = `${props.focusKey}-row-${row}-column-${column}`;
|
|
79
83
|
}
|
|
80
84
|
if (row === 0) {
|
|
81
85
|
if (props.focusUp) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","FlatList","useStyleContext","jsx","_jsx","SnowGrid","props","items","children","Children","toArray","filter","child","length","SnowStyle","itemsPerRow","itemStyle","flexBasis","gridStyle","push","short","component","grid","renderItem","item","itemIndex","columnStyle","list","maxColumn","Math","min","maxRow","max","ceil","lastElementColumn","style","scrollEnabled","scroll","numColumns","contentContainerStyle","columnWrapperStyle","data","index","separators","row","floor","column","focus","focusKey","focusStart","focusUp","focusDown","focusLeft","focusRight","cloneElement"],"sourceRoot":"../../../src","sources":["component/snow-grid.js"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["React","View","FlatList","useStyleContext","jsx","_jsx","SnowGrid","props","items","children","Children","toArray","filter","child","length","SnowStyle","itemsPerRow","itemStyle","flexBasis","gridStyle","push","short","component","grid","renderItem","item","itemIndex","columnStyle","list","maxColumn","Math","min","maxRow","max","ceil","lastElementColumn","style","scrollEnabled","scroll","numColumns","contentContainerStyle","columnWrapperStyle","data","index","separators","row","floor","column","focus","focusKey","focusStart","focusUp","focusDown","focusLeft","focusRight","cloneElement"],"sourceRoot":"../../../src","sources":["component/snow-grid.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -239,35 +239,37 @@ export function FocusContextProvider(props) {
|
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
241
|
const opposite = oppositeDirections[direction];
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
[
|
|
242
|
+
if (destinationKey) {
|
|
243
|
+
// If the requested destination points to the current node in the opposite direction, then they can be transiently linked
|
|
244
|
+
// If a request comes from the same direction but a different source node in the future, then that link overrides any previously created
|
|
245
|
+
const hasReverseMapping = focusMap.directions[destinationKey] && focusMap.directions[destinationKey][opposite];
|
|
246
|
+
const hasTransientMapping = focusMap.transient && focusMap.transient[destinationKey] && focusMap.transient[destinationKey][opposite];
|
|
247
|
+
if (!hasReverseMapping || hasTransientMapping) {
|
|
248
|
+
setFocusMaps(prev => {
|
|
249
|
+
const transient = {
|
|
250
|
+
[destinationKey]: {
|
|
251
|
+
[opposite]: sourceKey
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
if (DEBUG_FOCUS) {
|
|
255
|
+
console.log({
|
|
256
|
+
action: 'moveFocus->transientMap',
|
|
257
|
+
transient
|
|
258
|
+
});
|
|
251
259
|
}
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
260
|
+
let result = [...prev];
|
|
261
|
+
const directions = {
|
|
262
|
+
[destinationKey]: {
|
|
263
|
+
[opposite]: sourceKey
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
result[result.length - 1] = _.merge({}, result[result.length - 1], {
|
|
267
|
+
directions,
|
|
256
268
|
transient
|
|
257
269
|
});
|
|
258
|
-
|
|
259
|
-
let result = [...prev];
|
|
260
|
-
const directions = {
|
|
261
|
-
[destinationKey]: {
|
|
262
|
-
[opposite]: sourceKey
|
|
263
|
-
}
|
|
264
|
-
};
|
|
265
|
-
result[result.length - 1] = _.merge({}, result[result.length - 1], {
|
|
266
|
-
directions,
|
|
267
|
-
transient
|
|
270
|
+
return result;
|
|
268
271
|
});
|
|
269
|
-
|
|
270
|
-
});
|
|
272
|
+
}
|
|
271
273
|
}
|
|
272
274
|
if (!destinationKey) {
|
|
273
275
|
// No direct mapping was found
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_","Platform","useTVEventHandler","Keyboard","findNodeHandle","SnowSafeArea","jsx","_jsx","DEBUG_FOCUS","FocusContext","createContext","useFocusContext","value","useContext","Error","oppositeDirections","FocusContextProvider","props","focusedKey","setFocusedKey","useState","focusedKeyRef","useRef","focusMaps","setFocusMaps","layerName","refs","directions","focusMapsRef","remoteCallbacks","setRemoteCallbacks","remoteCallbacksRef","useEffect","current","isFocused","elementFocusKey","console","log","action","isFocusedLayer","layerMaps","length","pushFocusLayer","prev","result","push","popFocusLayer","pop","clearFocusLayers","addFocusMap","elementRef","elementProps","focusKey","element","onPress","onLongPress","focusUp","focusRight","focusDown","focusLeft","merge","transient","focusOn","focus","moveFocus","direction","isVisible","sourceKey","destinationKey","focusMap","normalDestination","hasOwnProperty","isGridCell","indexOf","split","destinationInGrid","opposite","hasReverseMapping","hasTransientMapping","hasInferredMapping","inferred","inferredKey","Object","keys","moveFocusRight","moveFocusLeft","moveFocusUp","moveFocusDown","pressFocusedElement","longPressFocusedElement","focusPress","isTV","focusLongPress","remoteHandler","remoteEvent","callbacks","kind","eventType","eventKeyAction","callback","entries","OS","focusKeyboardHandler","event","key","code","window","addEventListener","removeEventListener","readFocusProps","focusProps","focusStart","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","SnowSafeArea","jsx","_jsx","DEBUG_FOCUS","FocusContext","createContext","useFocusContext","value","useContext","Error","oppositeDirections","FocusContextProvider","props","focusedKey","setFocusedKey","useState","focusedKeyRef","useRef","focusMaps","setFocusMaps","layerName","refs","directions","focusMapsRef","remoteCallbacks","setRemoteCallbacks","remoteCallbacksRef","useEffect","current","isFocused","elementFocusKey","console","log","action","isFocusedLayer","layerMaps","length","pushFocusLayer","prev","result","push","popFocusLayer","pop","clearFocusLayers","addFocusMap","elementRef","elementProps","focusKey","element","onPress","onLongPress","focusUp","focusRight","focusDown","focusLeft","merge","transient","focusOn","focus","moveFocus","direction","isVisible","sourceKey","destinationKey","focusMap","normalDestination","hasOwnProperty","isGridCell","indexOf","split","destinationInGrid","opposite","hasReverseMapping","hasTransientMapping","hasInferredMapping","inferred","inferredKey","Object","keys","moveFocusRight","moveFocusLeft","moveFocusUp","moveFocusDown","pressFocusedElement","longPressFocusedElement","focusPress","isTV","focusLongPress","remoteHandler","remoteEvent","callbacks","kind","eventType","eventKeyAction","callback","entries","OS","focusKeyboardHandler","event","key","code","window","addEventListener","removeEventListener","readFocusProps","focusProps","focusStart","focusContext","Provider","style","flex","children"],"sourceRoot":"../../../src","sources":["context/snow-focus-context.js"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -69,18 +69,23 @@ export function SnowGrid(props) {
|
|
|
69
69
|
let column = index % itemsPerRow
|
|
70
70
|
let focus = {}
|
|
71
71
|
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
if (child.props.focusKey) {
|
|
73
|
+
focus.focusKey = child.props.focusKey
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
if (index === 0) {
|
|
76
77
|
focus.focusKey = props.focusKey
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
-
focus.
|
|
79
|
+
else {
|
|
80
|
+
focus.focusKey = `${props.focusKey}-row-${row}-column-${column}`
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
+
}
|
|
83
|
+
if (child.props.focusStart) {
|
|
84
|
+
focus.focusStart = child.props.focusStart
|
|
82
85
|
} else {
|
|
83
|
-
|
|
86
|
+
if (index === 0 && props.focusStart) {
|
|
87
|
+
focus.focusStart = true
|
|
88
|
+
}
|
|
84
89
|
}
|
|
85
90
|
|
|
86
91
|
if (row === 0) {
|
|
@@ -199,29 +199,31 @@ export function FocusContextProvider(props) {
|
|
|
199
199
|
}
|
|
200
200
|
|
|
201
201
|
const opposite = oppositeDirections[direction]
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
[
|
|
202
|
+
if (destinationKey) {
|
|
203
|
+
// If the requested destination points to the current node in the opposite direction, then they can be transiently linked
|
|
204
|
+
// If a request comes from the same direction but a different source node in the future, then that link overrides any previously created
|
|
205
|
+
const hasReverseMapping = focusMap.directions[destinationKey] && focusMap.directions[destinationKey][opposite]
|
|
206
|
+
const hasTransientMapping = focusMap.transient && focusMap.transient[destinationKey] && focusMap.transient[destinationKey][opposite]
|
|
207
|
+
if (!hasReverseMapping || hasTransientMapping) {
|
|
208
|
+
setFocusMaps((prev) => {
|
|
209
|
+
const transient = {
|
|
210
|
+
[destinationKey]: {
|
|
211
|
+
[opposite]: sourceKey
|
|
212
|
+
}
|
|
211
213
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
console.log({ action: 'moveFocus->transientMap', transient })
|
|
215
|
-
}
|
|
216
|
-
let result = [...prev]
|
|
217
|
-
const directions = {
|
|
218
|
-
[destinationKey]: {
|
|
219
|
-
[opposite]: sourceKey
|
|
214
|
+
if (DEBUG_FOCUS) {
|
|
215
|
+
console.log({ action: 'moveFocus->transientMap', transient })
|
|
220
216
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
217
|
+
let result = [...prev]
|
|
218
|
+
const directions = {
|
|
219
|
+
[destinationKey]: {
|
|
220
|
+
[opposite]: sourceKey
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
result[result.length - 1] = _.merge({}, result[result.length - 1], { directions, transient })
|
|
224
|
+
return result
|
|
225
|
+
})
|
|
226
|
+
}
|
|
225
227
|
}
|
|
226
228
|
if (!destinationKey) {
|
|
227
229
|
// No direct mapping was found
|