expo-snowui 1.2.11 → 1.2.12
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.
|
@@ -7,8 +7,6 @@ import { SnowSafeArea } from "../component/snow-safe-area.js";
|
|
|
7
7
|
|
|
8
8
|
/*
|
|
9
9
|
TODO
|
|
10
|
-
Hitting select on tv remote after first load, focused button doesn't get pressed.
|
|
11
|
-
|
|
12
10
|
Focus can get lost if in a tabs element there is only text.
|
|
13
11
|
Nothing inside the tab should be selectable, but the outer view gets a focusKey
|
|
14
12
|
|
|
@@ -102,6 +100,19 @@ export function FocusContextProvider(props) {
|
|
|
102
100
|
React.useEffect(() => {
|
|
103
101
|
remoteCallbacksRef.current = remoteCallbacks;
|
|
104
102
|
}, [remoteCallbacks]);
|
|
103
|
+
|
|
104
|
+
// After focusMaps are added by components, decide at the focus layer level what should have the first focus
|
|
105
|
+
React.useEffect(() => {
|
|
106
|
+
let topLayer = focusLayers?.at(-1);
|
|
107
|
+
if (!topLayer.hasFocusedStart && topLayer.focusStartKey && topLayer.focusStartElementRef && (topLayer.isUncloned || !focusedKeyRef.current)) {
|
|
108
|
+
setFocusLayers(prev => {
|
|
109
|
+
let result = [...prev];
|
|
110
|
+
result.at(-1).hasFocusedStart = true;
|
|
111
|
+
return result;
|
|
112
|
+
});
|
|
113
|
+
focusOn(topLayer.focusStartElementRef, topLayer.focusStartKey);
|
|
114
|
+
}
|
|
115
|
+
}, [focusLayers, currentLayer]);
|
|
105
116
|
const isFocused = elementFocusKey => {
|
|
106
117
|
if (DEBUG_FOCUS === 'verbose') {
|
|
107
118
|
prettyLog({
|
|
@@ -134,7 +145,8 @@ export function FocusContextProvider(props) {
|
|
|
134
145
|
result.push({
|
|
135
146
|
layerName,
|
|
136
147
|
refs: {},
|
|
137
|
-
directions: {}
|
|
148
|
+
directions: {},
|
|
149
|
+
isUncloned: true
|
|
138
150
|
});
|
|
139
151
|
} else {
|
|
140
152
|
result.push({
|
|
@@ -187,15 +199,10 @@ export function FocusContextProvider(props) {
|
|
|
187
199
|
addFocusMap,
|
|
188
200
|
currentLayer
|
|
189
201
|
} = useFocusContext();
|
|
190
|
-
const [startedFocused, setStartedFocused] = React.useState(false);
|
|
191
202
|
const elementRef = React.useRef(null);
|
|
192
203
|
React.useEffect(() => {
|
|
193
204
|
if (elementRef.current) {
|
|
194
|
-
|
|
195
|
-
addFocusMap(elementRef, elementProps, focusOnAdd);
|
|
196
|
-
if (focusOnAdd) {
|
|
197
|
-
setStartedFocused(true);
|
|
198
|
-
}
|
|
205
|
+
addFocusMap(elementRef, elementProps);
|
|
199
206
|
}
|
|
200
207
|
}, [elementProps.focusStart, elementProps.focusKey, elementProps.focusDown, elementProps.focusUp, elementProps.focusRight, elementProps.focusLeft, currentLayer]);
|
|
201
208
|
return elementRef;
|
|
@@ -221,7 +228,7 @@ export function FocusContextProvider(props) {
|
|
|
221
228
|
return result;
|
|
222
229
|
});
|
|
223
230
|
};
|
|
224
|
-
const addFocusMap = (elementRef, elementProps
|
|
231
|
+
const addFocusMap = (elementRef, elementProps) => {
|
|
225
232
|
const focusKey = elementProps.focusKey;
|
|
226
233
|
const refs = {
|
|
227
234
|
[focusKey]: {
|
|
@@ -230,9 +237,6 @@ export function FocusContextProvider(props) {
|
|
|
230
237
|
onLongPress: elementProps.onLongPress
|
|
231
238
|
}
|
|
232
239
|
};
|
|
233
|
-
if (elementStartsFocused) {
|
|
234
|
-
focusedKeyRef.current = elementProps.focusKey;
|
|
235
|
-
}
|
|
236
240
|
let focus = {};
|
|
237
241
|
if (elementProps.focusUp) {
|
|
238
242
|
focus['up'] = elementProps.focusUp;
|
|
@@ -294,6 +298,10 @@ export function FocusContextProvider(props) {
|
|
|
294
298
|
focusLayer.directions[elementProps.focusRight]['left'] = focusKey;
|
|
295
299
|
}
|
|
296
300
|
}
|
|
301
|
+
if (elementProps.focusStart) {
|
|
302
|
+
focusLayer.focusStartElementRef = elementRef;
|
|
303
|
+
focusLayer.focusStartKey = elementProps.focusKey;
|
|
304
|
+
}
|
|
297
305
|
result[result.length - 1] = _.merge({}, {
|
|
298
306
|
...focusLayer
|
|
299
307
|
}, {
|
|
@@ -302,10 +310,6 @@ export function FocusContextProvider(props) {
|
|
|
302
310
|
});
|
|
303
311
|
return result;
|
|
304
312
|
});
|
|
305
|
-
if (elementStartsFocused) {
|
|
306
|
-
elementRef.current.focus();
|
|
307
|
-
setFocusedKey(elementProps.focusKey);
|
|
308
|
-
}
|
|
309
313
|
};
|
|
310
314
|
const focusOn = (elementRef, focusKey) => {
|
|
311
315
|
if (DEBUG_FOCUS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_","Platform","useTVEventHandler","Keyboard","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","isFocused","elementFocusKey","action","isFocusedLayer","at","pushFocusLayer","layerIsUncloned","prev","result","push","popFocusLayer","pop","useFocusLayer","name","isUncloned","useLayoutEffect","useFocusWiring","elementProps","addFocusMap","startedFocused","setStartedFocused","elementRef","focusOnAdd","focusStart","focusKey","focusDown","focusUp","focusRight","focusLeft","clearFocusLayers","setScrollViewRef","scrollViewRef","focusLayer","length","elementStartsFocused","element","onPress","onLongPress","focus","hasOwnProperty","merge","focusOn","scroll","measureLayout","getInnerViewNode","x","y","scrollTo","animated","err","error","moveFocus","direction","isVisible","sourceKey","destinationKey","request","normalDestination","isGridCell","split","replace","target","moveFocusRight","moveFocusLeft","moveFocusUp","moveFocusDown","pressFocusedElement","focusMap","canPress","keyboardVisible","longPressFocusedElement","focusPress","focusLongPress","isTV","remoteHandler","remoteEvent","callbacks","kind","eventType","eventKeyAction","callback","Object","entries","focusKeyboardHandler","event","code","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","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","hasFocusedStart","focusStartKey","focusStartElementRef","isUncloned","prev","result","focusOn","isFocused","elementFocusKey","action","isFocusedLayer","pushFocusLayer","layerIsUncloned","push","popFocusLayer","pop","useFocusLayer","name","useLayoutEffect","useFocusWiring","elementProps","addFocusMap","elementRef","focusStart","focusKey","focusDown","focusUp","focusRight","focusLeft","clearFocusLayers","setScrollViewRef","scrollViewRef","focusLayer","length","element","onPress","onLongPress","focus","hasOwnProperty","merge","scroll","measureLayout","getInnerViewNode","x","y","scrollTo","animated","err","error","moveFocus","direction","isVisible","sourceKey","destinationKey","request","normalDestination","isGridCell","split","replace","target","moveFocusRight","moveFocusLeft","moveFocusUp","moveFocusDown","pressFocusedElement","focusMap","canPress","keyboardVisible","longPressFocusedElement","focusPress","focusLongPress","isTV","remoteHandler","remoteEvent","callbacks","kind","eventType","eventKeyAction","callback","Object","entries","focusKeyboardHandler","event","code","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
|
@@ -5,8 +5,6 @@ import { SnowSafeArea } from '../component/snow-safe-area'
|
|
|
5
5
|
|
|
6
6
|
/*
|
|
7
7
|
TODO
|
|
8
|
-
Hitting select on tv remote after first load, focused button doesn't get pressed.
|
|
9
|
-
|
|
10
8
|
Focus can get lost if in a tabs element there is only text.
|
|
11
9
|
Nothing inside the tab should be selectable, but the outer view gets a focusKey
|
|
12
10
|
|
|
@@ -106,6 +104,19 @@ export function FocusContextProvider(props) {
|
|
|
106
104
|
remoteCallbacksRef.current = remoteCallbacks
|
|
107
105
|
}, [remoteCallbacks])
|
|
108
106
|
|
|
107
|
+
// After focusMaps are added by components, decide at the focus layer level what should have the first focus
|
|
108
|
+
React.useEffect(() => {
|
|
109
|
+
let topLayer = focusLayers?.at(-1)
|
|
110
|
+
if (!topLayer.hasFocusedStart && topLayer.focusStartKey && topLayer.focusStartElementRef && (topLayer.isUncloned || !focusedKeyRef.current)) {
|
|
111
|
+
setFocusLayers((prev) => {
|
|
112
|
+
let result = [...prev]
|
|
113
|
+
result.at(-1).hasFocusedStart = true
|
|
114
|
+
return result
|
|
115
|
+
})
|
|
116
|
+
focusOn(topLayer.focusStartElementRef, topLayer.focusStartKey)
|
|
117
|
+
}
|
|
118
|
+
}, [focusLayers, currentLayer])
|
|
119
|
+
|
|
109
120
|
const isFocused = (elementFocusKey) => {
|
|
110
121
|
if (DEBUG_FOCUS === 'verbose') {
|
|
111
122
|
prettyLog({ action: 'isFocused', elementFocusKey, focusedKey })
|
|
@@ -129,7 +140,7 @@ export function FocusContextProvider(props) {
|
|
|
129
140
|
setFocusLayers((prev) => {
|
|
130
141
|
let result = [...prev]
|
|
131
142
|
if (layerIsUncloned) {
|
|
132
|
-
result.push({ layerName, refs: {}, directions: {} })
|
|
143
|
+
result.push({ layerName, refs: {}, directions: {}, isUncloned: true })
|
|
133
144
|
}
|
|
134
145
|
else {
|
|
135
146
|
result.push({ layerName, refs: { ...prev.at(-1).refs }, directions: { ...prev.at(-1).directions } })
|
|
@@ -166,17 +177,11 @@ export function FocusContextProvider(props) {
|
|
|
166
177
|
// This is only used by low level components to interact with the focus system
|
|
167
178
|
const useFocusWiring = (elementProps) => {
|
|
168
179
|
const { addFocusMap, currentLayer } = useFocusContext();
|
|
169
|
-
const [startedFocused, setStartedFocused] = React.useState(false)
|
|
170
180
|
const elementRef = React.useRef(null);
|
|
171
181
|
|
|
172
182
|
React.useEffect(() => {
|
|
173
183
|
if (elementRef.current) {
|
|
174
|
-
|
|
175
|
-
addFocusMap(elementRef, elementProps, focusOnAdd);
|
|
176
|
-
if (focusOnAdd) {
|
|
177
|
-
setStartedFocused(true)
|
|
178
|
-
}
|
|
179
|
-
|
|
184
|
+
addFocusMap(elementRef, elementProps);
|
|
180
185
|
}
|
|
181
186
|
}, [
|
|
182
187
|
elementProps.focusStart,
|
|
@@ -211,7 +216,7 @@ export function FocusContextProvider(props) {
|
|
|
211
216
|
})
|
|
212
217
|
}
|
|
213
218
|
|
|
214
|
-
const addFocusMap = (elementRef, elementProps
|
|
219
|
+
const addFocusMap = (elementRef, elementProps) => {
|
|
215
220
|
const focusKey = elementProps.focusKey
|
|
216
221
|
const refs = {
|
|
217
222
|
[focusKey]: {
|
|
@@ -220,9 +225,6 @@ export function FocusContextProvider(props) {
|
|
|
220
225
|
onLongPress: elementProps.onLongPress
|
|
221
226
|
}
|
|
222
227
|
}
|
|
223
|
-
if (elementStartsFocused) {
|
|
224
|
-
focusedKeyRef.current = elementProps.focusKey
|
|
225
|
-
}
|
|
226
228
|
let focus = {}
|
|
227
229
|
if (elementProps.focusUp) {
|
|
228
230
|
focus['up'] = elementProps.focusUp
|
|
@@ -277,13 +279,13 @@ export function FocusContextProvider(props) {
|
|
|
277
279
|
focusLayer.directions[elementProps.focusRight]['left'] = focusKey
|
|
278
280
|
}
|
|
279
281
|
}
|
|
282
|
+
if (elementProps.focusStart) {
|
|
283
|
+
focusLayer.focusStartElementRef = elementRef
|
|
284
|
+
focusLayer.focusStartKey = elementProps.focusKey
|
|
285
|
+
}
|
|
280
286
|
result[result.length - 1] = _.merge({}, { ...focusLayer }, { refs, directions })
|
|
281
287
|
return result
|
|
282
288
|
})
|
|
283
|
-
if (elementStartsFocused) {
|
|
284
|
-
elementRef.current.focus()
|
|
285
|
-
setFocusedKey(elementProps.focusKey)
|
|
286
|
-
}
|
|
287
289
|
}
|
|
288
290
|
|
|
289
291
|
const focusOn = (elementRef, focusKey) => {
|