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
- const focusOnAdd = !startedFocused && elementProps.focusStart;
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, elementStartsFocused) => {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-snowui",
3
- "version": "1.2.11",
3
+ "version": "1.2.12",
4
4
  "description": "GUI components and contexts shared by the snowsuite apps",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -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
- const focusOnAdd = !startedFocused && elementProps.focusStart
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, elementStartsFocused) => {
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) => {