expo-snowui 1.2.9 → 1.2.11

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.
@@ -15,7 +15,8 @@ const SnowImageButtonW = props => {
15
15
  isFocused,
16
16
  useFocusWiring,
17
17
  focusPress,
18
- focusLongPress
18
+ focusLongPress,
19
+ tvRemoteProps
19
20
  } = useFocusContext();
20
21
  const elementRef = useFocusWiring(props);
21
22
  let fontStyle = [SnowStyle.component.imageButton.text];
@@ -60,6 +61,7 @@ const SnowImageButtonW = props => {
60
61
  return /*#__PURE__*/_jsx(View, {
61
62
  children: /*#__PURE__*/_jsxs(Pressable, {
62
63
  ref: elementRef,
64
+ ...tvRemoteProps(props),
63
65
  style: wrapperStyle,
64
66
  onPress: focusPress(elementRef, props.focusKey),
65
67
  onLongPress: focusLongPress(elementRef, props.focusKey),
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Pressable","Image","useStyleContext","useFocusContext","SnowText","jsx","_jsx","jsxs","_jsxs","SnowImageButtonW","props","SnowStyle","isFocused","useFocusWiring","focusPress","focusLongPress","elementRef","fontStyle","component","imageButton","text","title","length","push","smallText","substring","wrapperStyle","wrapper","imageStyle","image","wide","wrapperWide","imageWide","square","wrapperSquare","imageSquare","textWrapperStyle","textWrapper","dull","selected","focusKey","focused","imageSource","imageUrl","uri","children","ref","style","onPress","onLongPress","contentFit","source","placeholder","isSnowFocusWired","SnowImageButton"],"sourceRoot":"../../../../src","sources":["component/wired/snow-image-button.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Pressable","Image","useStyleContext","useFocusContext","SnowText","jsx","_jsx","jsxs","_jsxs","SnowImageButtonW","props","SnowStyle","isFocused","useFocusWiring","focusPress","focusLongPress","tvRemoteProps","elementRef","fontStyle","component","imageButton","text","title","length","push","smallText","substring","wrapperStyle","wrapper","imageStyle","image","wide","wrapperWide","imageWide","square","wrapperSquare","imageSquare","textWrapperStyle","textWrapper","dull","selected","focusKey","focused","imageSource","imageUrl","uri","children","ref","style","onPress","onLongPress","contentFit","source","placeholder","isSnowFocusWired","SnowImageButton"],"sourceRoot":"../../../../src","sources":["component/wired/snow-image-button.js"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,8 @@ const SnowInputW = props => {
12
12
  } = useStyleContext(props);
13
13
  const {
14
14
  isFocused,
15
- useFocusWiring
15
+ useFocusWiring,
16
+ tvRemoteProps
16
17
  } = useFocusContext();
17
18
  const elementRef = useFocusWiring(props);
18
19
  let textStyle = [SnowStyle.component.input.text];
@@ -28,6 +29,7 @@ const SnowInputW = props => {
28
29
  }
29
30
  return /*#__PURE__*/_jsx(TextInput, {
30
31
  ref: elementRef,
32
+ ...tvRemoteProps(props),
31
33
  secureTextEntry: props.secureTextEntry,
32
34
  style: textStyle,
33
35
  editable: true,
@@ -1 +1 @@
1
- {"version":3,"names":["TextInput","useDebouncedCallback","useStyleContext","useFocusContext","jsx","_jsx","SnowInputW","props","SnowStyle","SnowConfig","isFocused","useFocusWiring","elementRef","textStyle","component","input","text","short","push","small","focusKey","focused","onDebounce","inputDebounceMilliseconds","ref","secureTextEntry","style","editable","onChangeText","val","onValueChange","onSubmitEditing","onSubmit","value","isSnowFocusWired","SnowInput"],"sourceRoot":"../../../../src","sources":["component/wired/snow-input.js"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,cAAc;AACxC,SAASC,oBAAoB,QAAQ,cAAc;AACnD,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,eAAe,QAAQ,qCAAkC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElE,MAAMC,UAAU,GAAIC,KAAK,IAAK;EAC1B,MAAM;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGP,eAAe,CAACK,KAAK,CAAC;EACxD,MAAM;IAAEG,SAAS;IAAEC;EAAe,CAAC,GAAGR,eAAe,CAAC,CAAC;EACvD,MAAMS,UAAU,GAAGD,cAAc,CAACJ,KAAK,CAAC;EAExC,IAAIM,SAAS,GAAG,CAACL,SAAS,CAACM,SAAS,CAACC,KAAK,CAACC,IAAI,CAAC;EAChD,IAAIT,KAAK,CAACU,KAAK,EAAE;IACbJ,SAAS,CAACK,IAAI,CAACV,SAAS,CAACM,SAAS,CAACC,KAAK,CAACI,KAAK,CAAC;EACnD;EACA,IAAIT,SAAS,CAACH,KAAK,CAACa,QAAQ,CAAC,EAAE;IAC3BP,SAAS,CAACK,IAAI,CAACV,SAAS,CAACM,SAAS,CAACC,KAAK,CAACM,OAAO,CAAC;EACrD;EAEA,IAAIC,UAAU,GAAG,IAAI;EACrB,IAAIf,KAAK,CAACe,UAAU,EAAE;IAClBA,UAAU,GAAGrB,oBAAoB,CAACM,KAAK,CAACe,UAAU,EAAEb,UAAU,CAACc,yBAAyB,CAAC;EAC7F;EACA,oBAAOlB,IAAA,CAACL,SAAS;IACbwB,GAAG,EAAEZ,UAAW;IAChBa,eAAe,EAAElB,KAAK,CAACkB,eAAgB;IACvCC,KAAK,EAAEb,SAAU;IACjBc,QAAQ,EAAE,IAAK;IACfC,YAAY,EAAGC,GAAG,IAAK;MACnB,IAAItB,KAAK,CAACuB,aAAa,EAAE;QACrBvB,KAAK,CAACuB,aAAa,CAACD,GAAG,CAAC;MAC5B;MACA,IAAIP,UAAU,EAAE;QACZA,UAAU,CAACO,GAAG,CAAC;MACnB;IACJ,CAAE;IACFE,eAAe,EAAEA,CAAA,KAAM;MACnB,IAAIxB,KAAK,CAACyB,QAAQ,EAAE;QAChBzB,KAAK,CAACyB,QAAQ,CAAC,CAAC;MACpB;IACJ,CAAE;IACFC,KAAK,EAAE1B,KAAK,CAAC0B;EAAM,CACtB,CAAC;AACN,CAAC;AAED3B,UAAU,CAAC4B,gBAAgB,GAAG,IAAI;AAElC,OAAO,MAAMC,SAAS,GAAG7B,UAAU;AAEnC,eAAe6B,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["TextInput","useDebouncedCallback","useStyleContext","useFocusContext","jsx","_jsx","SnowInputW","props","SnowStyle","SnowConfig","isFocused","useFocusWiring","tvRemoteProps","elementRef","textStyle","component","input","text","short","push","small","focusKey","focused","onDebounce","inputDebounceMilliseconds","ref","secureTextEntry","style","editable","onChangeText","val","onValueChange","onSubmitEditing","onSubmit","value","isSnowFocusWired","SnowInput"],"sourceRoot":"../../../../src","sources":["component/wired/snow-input.js"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,cAAc;AACxC,SAASC,oBAAoB,QAAQ,cAAc;AACnD,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,eAAe,QAAQ,qCAAkC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElE,MAAMC,UAAU,GAAIC,KAAK,IAAK;EAC1B,MAAM;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGP,eAAe,CAACK,KAAK,CAAC;EACxD,MAAM;IAAEG,SAAS;IAAEC,cAAc;IAAEC;EAAc,CAAC,GAAGT,eAAe,CAAC,CAAC;EACtE,MAAMU,UAAU,GAAGF,cAAc,CAACJ,KAAK,CAAC;EAExC,IAAIO,SAAS,GAAG,CAACN,SAAS,CAACO,SAAS,CAACC,KAAK,CAACC,IAAI,CAAC;EAChD,IAAIV,KAAK,CAACW,KAAK,EAAE;IACbJ,SAAS,CAACK,IAAI,CAACX,SAAS,CAACO,SAAS,CAACC,KAAK,CAACI,KAAK,CAAC;EACnD;EACA,IAAIV,SAAS,CAACH,KAAK,CAACc,QAAQ,CAAC,EAAE;IAC3BP,SAAS,CAACK,IAAI,CAACX,SAAS,CAACO,SAAS,CAACC,KAAK,CAACM,OAAO,CAAC;EACrD;EAEA,IAAIC,UAAU,GAAG,IAAI;EACrB,IAAIhB,KAAK,CAACgB,UAAU,EAAE;IAClBA,UAAU,GAAGtB,oBAAoB,CAACM,KAAK,CAACgB,UAAU,EAAEd,UAAU,CAACe,yBAAyB,CAAC;EAC7F;EACA,oBAAOnB,IAAA,CAACL,SAAS;IACbyB,GAAG,EAAEZ,UAAW;IAAA,GACZD,aAAa,CAACL,KAAK,CAAC;IACxBmB,eAAe,EAAEnB,KAAK,CAACmB,eAAgB;IACvCC,KAAK,EAAEb,SAAU;IACjBc,QAAQ,EAAE,IAAK;IACfC,YAAY,EAAGC,GAAG,IAAK;MACnB,IAAIvB,KAAK,CAACwB,aAAa,EAAE;QACrBxB,KAAK,CAACwB,aAAa,CAACD,GAAG,CAAC;MAC5B;MACA,IAAIP,UAAU,EAAE;QACZA,UAAU,CAACO,GAAG,CAAC;MACnB;IACJ,CAAE;IACFE,eAAe,EAAEA,CAAA,KAAM;MACnB,IAAIzB,KAAK,CAAC0B,QAAQ,EAAE;QAChB1B,KAAK,CAAC0B,QAAQ,CAAC,CAAC;MACpB;IACJ,CAAE;IACFC,KAAK,EAAE3B,KAAK,CAAC2B;EAAM,CACtB,CAAC;AACN,CAAC;AAED5B,UAAU,CAAC6B,gBAAgB,GAAG,IAAI;AAElC,OAAO,MAAMC,SAAS,GAAG9B,UAAU;AAEnC,eAAe8B,SAAS","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import React from "react";
4
- import { PanResponder, Pressable, View } from "react-native";
4
+ import { PanResponder, Platform, Pressable, View } from "react-native";
5
5
  import { useDebouncedCallback } from 'use-debounce';
6
6
  import { useFocusContext } from "../../context/snow-focus-context.js";
7
7
  import { useStyleContext } from "../../context/snow-style-context.js";
@@ -111,18 +111,40 @@ const SnowRangeSliderW = props => {
111
111
  React.useEffect(() => {
112
112
  percentRef.current = percent;
113
113
  }, [percent]);
114
- React.useEffect(() => {
115
- setRemoteCallbacks(callbacks => {
116
- callbacks['slider'] = sliderHandleRemote;
117
- return callbacks;
118
- });
119
- return () => {
114
+ if (Platform.isTV) {
115
+ React.useEffect(() => {
120
116
  setRemoteCallbacks(callbacks => {
121
- callbacks['slider'] = null;
117
+ callbacks['slider'] = sliderHandleRemote;
122
118
  return callbacks;
123
119
  });
124
- };
125
- });
120
+ return () => {
121
+ setRemoteCallbacks(callbacks => {
122
+ callbacks['slider'] = null;
123
+ return callbacks;
124
+ });
125
+ };
126
+ }, []);
127
+ }
128
+ if (Platform.OS === 'web') {
129
+ React.useEffect(() => {
130
+ const rangeSliderKeyboardHandler = event => {
131
+ switch (event.key) {
132
+ case 'ArrowLeft':
133
+ applyStep(-step);
134
+ break;
135
+ case 'ArrowRight':
136
+ applyStep(step);
137
+ break;
138
+ default:
139
+ break;
140
+ }
141
+ };
142
+ window.addEventListener('keydown', rangeSliderKeyboardHandler);
143
+ return () => {
144
+ window.removeEventListener('keydown', rangeSliderKeyboardHandler);
145
+ };
146
+ }, []);
147
+ }
126
148
  const applyStep = amount => {
127
149
  let result = percentRef.current + amount;
128
150
  if (result < min) {
@@ -207,7 +229,6 @@ const SnowRangeSliderW = props => {
207
229
  ref: elementRef,
208
230
  style: thumbStyle,
209
231
  onLayout: handleLayout('thumb'),
210
- focusStart: props.focusStart,
211
232
  focusKey: props.focusKey,
212
233
  focusUp: props.focusUp,
213
234
  focusDown: props.focusDown
@@ -1 +1 @@
1
- {"version":3,"names":["React","PanResponder","Pressable","View","useDebouncedCallback","useFocusContext","useStyleContext","jsx","_jsx","jsxs","_jsxs","min","max","step","SnowRangeSliderW","props","SnowStyle","SnowConfig","setRemoteCallbacks","useFocusWiring","isFocused","isDraggingRef","useRef","percent","setPercent","useState","percentRef","applyStepInterval","setApplyStepInterval","elementRef","sliderWidth","component","rangeSlider","trackWrapper","width","layoutsRef","slider","track","thumb","leftTrack","rightTrack","onValueChange","debounce","inputDebounceMilliseconds","thumbPositionToPercent","positionX","actionPositionX","current","x","newPercent","panRef","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderEnd","onPanResponderRelease","onPanResponderMove","pressEvent","gestureState","moveX","x0","onPanResponderGrant","useEffect","callbacks","sliderHandleRemote","applyStep","amount","result","longPress","action","setInterval","clearInterval","kind","focusKey","handleLayout","event","widths","nativeEvent","layout","trackWrapperStyle","thumbX","leftTrackStyle","thumbStyle","left","push","backgroundColor","color","hover","onLayout","style","wrapper","children","panHandlers","ref","focusStart","focusUp","focusDown","isSnowFocusWired","SnowRangeSlider"],"sourceRoot":"../../../../src","sources":["component/wired/snow-range-slider.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","PanResponder","Platform","Pressable","View","useDebouncedCallback","useFocusContext","useStyleContext","jsx","_jsx","jsxs","_jsxs","min","max","step","SnowRangeSliderW","props","SnowStyle","SnowConfig","setRemoteCallbacks","useFocusWiring","isFocused","isDraggingRef","useRef","percent","setPercent","useState","percentRef","applyStepInterval","setApplyStepInterval","elementRef","sliderWidth","component","rangeSlider","trackWrapper","width","layoutsRef","slider","track","thumb","leftTrack","rightTrack","onValueChange","debounce","inputDebounceMilliseconds","thumbPositionToPercent","positionX","actionPositionX","current","x","newPercent","panRef","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderEnd","onPanResponderRelease","onPanResponderMove","pressEvent","gestureState","moveX","x0","onPanResponderGrant","useEffect","isTV","callbacks","sliderHandleRemote","OS","rangeSliderKeyboardHandler","event","key","applyStep","window","addEventListener","removeEventListener","amount","result","longPress","action","setInterval","clearInterval","kind","focusKey","handleLayout","widths","nativeEvent","layout","trackWrapperStyle","thumbX","leftTrackStyle","thumbStyle","left","push","backgroundColor","color","hover","onLayout","style","wrapper","children","panHandlers","ref","focusUp","focusDown","isSnowFocusWired","SnowRangeSlider"],"sourceRoot":"../../../../src","sources":["component/wired/snow-range-slider.js"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,8 @@ const SnowTextButtonW = props => {
13
13
  isFocused,
14
14
  focusPress,
15
15
  focusLongPress,
16
- useFocusWiring
16
+ useFocusWiring,
17
+ tvRemoteProps
17
18
  } = useFocusContext();
18
19
  const elementRef = useFocusWiring(props);
19
20
  const wrapperStyle = [SnowStyle.component.textButton.wrapper];
@@ -49,6 +50,7 @@ const SnowTextButtonW = props => {
49
50
  }
50
51
  return /*#__PURE__*/_jsx(Pressable, {
51
52
  ref: elementRef,
53
+ ...tvRemoteProps(props),
52
54
  style: wrapperStyle,
53
55
  onPress: focusPress(elementRef, props.focusKey),
54
56
  onLongPress: focusLongPress(elementRef, props.focusKey),
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","useFocusContext","useStyleContext","SnowText","jsx","_jsx","SnowTextButtonW","props","SnowStyle","isFocused","focusPress","focusLongPress","useFocusWiring","elementRef","wrapperStyle","component","textButton","wrapper","disabled","push","selected","focusKey","focused","fade","tall","isWeb","tallWrapper","style","textStyle","text","title","length","smallText","fadeText","short","shortWrapper","ref","onPress","onLongPress","children","noSelect","isSnowFocusWired","SnowTextButton"],"sourceRoot":"../../../../src","sources":["component/wired/snow-text-button.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","useFocusContext","useStyleContext","SnowText","jsx","_jsx","SnowTextButtonW","props","SnowStyle","isFocused","focusPress","focusLongPress","useFocusWiring","tvRemoteProps","elementRef","wrapperStyle","component","textButton","wrapper","disabled","push","selected","focusKey","focused","fade","tall","isWeb","tallWrapper","style","textStyle","text","title","length","smallText","fadeText","short","shortWrapper","ref","onPress","onLongPress","children","noSelect","isSnowFocusWired","SnowTextButton"],"sourceRoot":"../../../../src","sources":["component/wired/snow-text-button.js"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,8 @@ const SnowToggleW = props => {
11
11
  } = useStyleContext(props);
12
12
  const {
13
13
  useFocusWiring,
14
- isFocused
14
+ isFocused,
15
+ tvRemoteProps
15
16
  } = useFocusContext();
16
17
  const elementRef = useFocusWiring(props);
17
18
  const toggleValue = () => {
@@ -29,6 +30,7 @@ const SnowToggleW = props => {
29
30
  }
30
31
  return /*#__PURE__*/_jsxs(Pressable, {
31
32
  ref: elementRef,
33
+ ...tvRemoteProps(props),
32
34
  style: SnowStyle.component.toggle.center,
33
35
  onPress: toggleValue,
34
36
  children: [/*#__PURE__*/_jsx(SnowLabel, {
@@ -1 +1 @@
1
- {"version":3,"names":["Switch","Pressable","useStyleContext","useFocusContext","SnowLabel","jsx","_jsx","jsxs","_jsxs","SnowToggleW","props","SnowStyle","useFocusWiring","isFocused","elementRef","toggleValue","onValueChange","value","thumbColor","component","toggle","color","thumb","focusKey","hover","true","false","ref","style","center","onPress","children","title","trackColor","marginLeft","marginRight","isSnowFocusWired","SnowToggle"],"sourceRoot":"../../../../src","sources":["component/wired/snow-toggle.js"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,cAAc;AAChD,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,SAAS,QAAQ,kBAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEzC,MAAMC,WAAW,GAAIC,KAAK,IAAK;EAC3B,MAAM;IAAEC;EAAU,CAAC,GAAGT,eAAe,CAACQ,KAAK,CAAC;EAC5C,MAAM;IAAEE,cAAc;IAAEC;EAAU,CAAC,GAAGV,eAAe,CAAC,CAAC;EACvD,MAAMW,UAAU,GAAGF,cAAc,CAACF,KAAK,CAAC;EAExC,MAAMK,WAAW,GAAGA,CAAA,KAAM;IACtBL,KAAK,CAACM,aAAa,CAAC,CAACN,KAAK,CAACO,KAAK,CAAC;EACrC,CAAC;EAED,IAAIC,UAAU,GAAGP,SAAS,CAACQ,SAAS,CAACC,MAAM,CAACC,KAAK,CAACC,KAAK;EACvD,IAAIT,SAAS,CAACH,KAAK,CAACa,QAAQ,CAAC,EAAE;IAC3BL,UAAU,GAAGP,SAAS,CAACU,KAAK,CAACG,KAAK;EACtC,CAAC,MAAM;IACH,IAAId,KAAK,CAACO,KAAK,EAAE;MACbC,UAAU,GAAGP,SAAS,CAACQ,SAAS,CAACC,MAAM,CAACC,KAAK,CAACI,IAAI;IACtD,CAAC,MAAM;MACHP,UAAU,GAAGP,SAAS,CAACQ,SAAS,CAACC,MAAM,CAACC,KAAK,CAACK,KAAK;IACvD;EACJ;EAIA,oBACIlB,KAAA,CAACP,SAAS;IACN0B,GAAG,EAAEb,UAAW;IAChBc,KAAK,EAAEjB,SAAS,CAACQ,SAAS,CAACC,MAAM,CAACS,MAAO;IACzCC,OAAO,EAAEf,WAAY;IAAAgB,QAAA,gBAErBzB,IAAA,CAACF,SAAS;MAAA2B,QAAA,EAAErB,KAAK,CAACsB;IAAK,CAAY,CAAC,eACpC1B,IAAA,CAACN,MAAM;MACHkB,UAAU,EAAEA,UAAW;MACvBe,UAAU,EACN;QACIR,IAAI,EAAEd,SAAS,CAACQ,SAAS,CAACC,MAAM,CAACC,KAAK,CAACI,IAAI;QAC3CC,KAAK,EAAEf,SAAS,CAACQ,SAAS,CAACC,MAAM,CAACC,KAAK,CAACK;MAC5C,CAAE;MACNE,KAAK,EAAE;QAAEM,UAAU,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAO,CAAE;MACnDlB,KAAK,EAAEP,KAAK,CAACO,KAAM;MACnBD,aAAa,EAAED;IAAY,CAAE,CAAC;EAAA,CAC3B,CAAC;AAEpB,CAAC;AAEDN,WAAW,CAAC2B,gBAAgB,GAAG,IAAI;AAEnC,OAAO,MAAMC,UAAU,GAAG5B,WAAW;AAErC,eAAe4B,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["Switch","Pressable","useStyleContext","useFocusContext","SnowLabel","jsx","_jsx","jsxs","_jsxs","SnowToggleW","props","SnowStyle","useFocusWiring","isFocused","tvRemoteProps","elementRef","toggleValue","onValueChange","value","thumbColor","component","toggle","color","thumb","focusKey","hover","true","false","ref","style","center","onPress","children","title","trackColor","marginLeft","marginRight","isSnowFocusWired","SnowToggle"],"sourceRoot":"../../../../src","sources":["component/wired/snow-toggle.js"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,cAAc;AAChD,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,SAAS,QAAQ,kBAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEzC,MAAMC,WAAW,GAAIC,KAAK,IAAK;EAC3B,MAAM;IAAEC;EAAU,CAAC,GAAGT,eAAe,CAACQ,KAAK,CAAC;EAC5C,MAAM;IAAEE,cAAc;IAAEC,SAAS;IAAEC;EAAc,CAAC,GAAGX,eAAe,CAAC,CAAC;EACtE,MAAMY,UAAU,GAAGH,cAAc,CAACF,KAAK,CAAC;EAExC,MAAMM,WAAW,GAAGA,CAAA,KAAM;IACtBN,KAAK,CAACO,aAAa,CAAC,CAACP,KAAK,CAACQ,KAAK,CAAC;EACrC,CAAC;EAED,IAAIC,UAAU,GAAGR,SAAS,CAACS,SAAS,CAACC,MAAM,CAACC,KAAK,CAACC,KAAK;EACvD,IAAIV,SAAS,CAACH,KAAK,CAACc,QAAQ,CAAC,EAAE;IAC3BL,UAAU,GAAGR,SAAS,CAACW,KAAK,CAACG,KAAK;EACtC,CAAC,MAAM;IACH,IAAIf,KAAK,CAACQ,KAAK,EAAE;MACbC,UAAU,GAAGR,SAAS,CAACS,SAAS,CAACC,MAAM,CAACC,KAAK,CAACI,IAAI;IACtD,CAAC,MAAM;MACHP,UAAU,GAAGR,SAAS,CAACS,SAAS,CAACC,MAAM,CAACC,KAAK,CAACK,KAAK;IACvD;EACJ;EAIA,oBACInB,KAAA,CAACP,SAAS;IACN2B,GAAG,EAAEb,UAAW;IAAA,GACZD,aAAa,CAACJ,KAAK,CAAC;IACxBmB,KAAK,EAAElB,SAAS,CAACS,SAAS,CAACC,MAAM,CAACS,MAAO;IACzCC,OAAO,EAAEf,WAAY;IAAAgB,QAAA,gBAErB1B,IAAA,CAACF,SAAS;MAAA4B,QAAA,EAAEtB,KAAK,CAACuB;IAAK,CAAY,CAAC,eACpC3B,IAAA,CAACN,MAAM;MACHmB,UAAU,EAAEA,UAAW;MACvBe,UAAU,EACN;QACIR,IAAI,EAAEf,SAAS,CAACS,SAAS,CAACC,MAAM,CAACC,KAAK,CAACI,IAAI;QAC3CC,KAAK,EAAEhB,SAAS,CAACS,SAAS,CAACC,MAAM,CAACC,KAAK,CAACK;MAC5C,CAAE;MACNE,KAAK,EAAE;QAAEM,UAAU,EAAE,MAAM;QAAEC,WAAW,EAAE;MAAO,CAAE;MACnDlB,KAAK,EAAER,KAAK,CAACQ,KAAM;MACnBD,aAAa,EAAED;IAAY,CAAE,CAAC;EAAA,CAC3B,CAAC;AAEpB,CAAC;AAEDP,WAAW,CAAC4B,gBAAgB,GAAG,IAAI;AAEnC,OAAO,MAAMC,UAAU,GAAG7B,WAAW;AAErC,eAAe6B,UAAU","ignoreList":[]}
@@ -2,11 +2,13 @@
2
2
 
3
3
  import React from 'react';
4
4
  import _ from 'lodash';
5
- import { Platform, useTVEventHandler, Keyboard, findNodeHandle } from 'react-native';
5
+ import { Platform, useTVEventHandler, Keyboard } from 'react-native';
6
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
+
10
12
  Focus can get lost if in a tabs element there is only text.
11
13
  Nothing inside the tab should be selectable, but the outer view gets a focusKey
12
14
 
@@ -115,7 +117,7 @@ export function FocusContextProvider(props) {
115
117
  prettyLog({
116
118
  action: 'isFocusedLayer',
117
119
  layerName,
118
- layerMaps
120
+ focusLayers
119
121
  });
120
122
  }
121
123
  return layerName && focusLayers.at(-1).layerName === layerName;
@@ -145,7 +147,7 @@ export function FocusContextProvider(props) {
145
147
  }
146
148
  });
147
149
  }
148
- if (DEBUG_FOCUS) {
150
+ if (DEBUG_FOCUS === 'verbose') {
149
151
  prettyLog({
150
152
  action: 'pushFocusLayer',
151
153
  layerName,
@@ -183,18 +185,19 @@ export function FocusContextProvider(props) {
183
185
  const useFocusWiring = elementProps => {
184
186
  const {
185
187
  addFocusMap,
186
- focusOn,
187
188
  currentLayer
188
189
  } = useFocusContext();
190
+ const [startedFocused, setStartedFocused] = React.useState(false);
189
191
  const elementRef = React.useRef(null);
190
192
  React.useEffect(() => {
191
193
  if (elementRef.current) {
192
- addFocusMap(elementRef, elementProps);
193
- if (elementProps.focusStart) {
194
- focusOn(elementRef, elementProps.focusKey);
194
+ const focusOnAdd = !startedFocused && elementProps.focusStart;
195
+ addFocusMap(elementRef, elementProps, focusOnAdd);
196
+ if (focusOnAdd) {
197
+ setStartedFocused(true);
195
198
  }
196
199
  }
197
- }, [elementProps.focusKey, elementProps.focusDown, elementProps.focusUp, elementProps.focusRight, elementProps.focusLeft, currentLayer]);
200
+ }, [elementProps.focusStart, elementProps.focusKey, elementProps.focusDown, elementProps.focusUp, elementProps.focusRight, elementProps.focusLeft, currentLayer]);
198
201
  return elementRef;
199
202
  };
200
203
  const clearFocusLayers = () => {
@@ -218,7 +221,7 @@ export function FocusContextProvider(props) {
218
221
  return result;
219
222
  });
220
223
  };
221
- const addFocusMap = (elementRef, elementProps) => {
224
+ const addFocusMap = (elementRef, elementProps, elementStartsFocused) => {
222
225
  const focusKey = elementProps.focusKey;
223
226
  const refs = {
224
227
  [focusKey]: {
@@ -227,6 +230,9 @@ export function FocusContextProvider(props) {
227
230
  onLongPress: elementProps.onLongPress
228
231
  }
229
232
  };
233
+ if (elementStartsFocused) {
234
+ focusedKeyRef.current = elementProps.focusKey;
235
+ }
230
236
  let focus = {};
231
237
  if (elementProps.focusUp) {
232
238
  focus['up'] = elementProps.focusUp;
@@ -243,7 +249,7 @@ export function FocusContextProvider(props) {
243
249
  const directions = {
244
250
  [focusKey]: focus
245
251
  };
246
- if (DEBUG_FOCUS) {
252
+ if (DEBUG_FOCUS === 'verbose') {
247
253
  prettyLog({
248
254
  action: 'addFocusMap',
249
255
  elementRef,
@@ -296,8 +302,19 @@ export function FocusContextProvider(props) {
296
302
  });
297
303
  return result;
298
304
  });
305
+ if (elementStartsFocused) {
306
+ elementRef.current.focus();
307
+ setFocusedKey(elementProps.focusKey);
308
+ }
299
309
  };
300
310
  const focusOn = (elementRef, focusKey) => {
311
+ if (DEBUG_FOCUS) {
312
+ prettyLog({
313
+ action: 'focusOn',
314
+ focusKey,
315
+ elementRef
316
+ });
317
+ }
301
318
  elementRef.current.focus();
302
319
  let scroll = focusLayersRef.current?.at(-1)?.scrollViewRef;
303
320
  if (scroll) {
@@ -419,7 +436,17 @@ export function FocusContextProvider(props) {
419
436
  focusKey = focusedKeyRef.current;
420
437
  }
421
438
  const focusMap = focusLayersRef.current.at(-1);
422
- if (Keyboard.isVisible() || !focusMap?.refs?.[focusKey]?.onPress) {
439
+ const canPress = Keyboard.isVisible() || !focusMap?.refs?.[focusKey]?.onPress;
440
+ if (DEBUG_FOCUS) {
441
+ prettyLog({
442
+ action: 'pressFocusedElement',
443
+ focusKey,
444
+ canPress,
445
+ keyboardVisible: Keyboard.isVisible(),
446
+ onPress: focusMap?.refs?.[focusKey]?.onPress
447
+ });
448
+ }
449
+ if (canPress) {
423
450
  return false;
424
451
  }
425
452
  return focusMap.refs[focusKey].onPress();
@@ -429,26 +456,28 @@ export function FocusContextProvider(props) {
429
456
  focusKey = focusedKeyRef.current;
430
457
  }
431
458
  const focusMap = focusLayersRef.current.at(-1);
432
- if (Keyboard.isVisible() || !focusMap?.refs?.[focusKey]?.onLongPress) {
459
+ const canPress = Keyboard.isVisible() || !focusMap?.refs?.[focusKey]?.onLongPress;
460
+ if (DEBUG_FOCUS) {
461
+ prettyLog({
462
+ action: 'longPressFocusedElement',
463
+ focusKey,
464
+ canPress,
465
+ keyboardVisible: Keyboard.isVisible(),
466
+ onLongPress: focusMap?.refs?.[focusKey]?.onLongPress
467
+ });
468
+ }
469
+ if (canPress) {
433
470
  return false;
434
471
  }
435
472
  return focusMap.refs[focusKey].onLongPress();
436
473
  };
437
474
  const focusPress = (elementRef, focusKey) => {
438
- // This is done by the remoteHandler on TV
439
- if (Platform.isTV) {
440
- return () => {};
441
- }
442
475
  return () => {
443
476
  focusOn(elementRef, focusKey);
444
477
  pressFocusedElement(focusKey);
445
478
  };
446
479
  };
447
480
  const focusLongPress = (elementRef, focusKey) => {
448
- // This is done by the remoteHandler on TV
449
- if (Platform.isTV) {
450
- return () => {};
451
- }
452
481
  return () => {
453
482
  focusOn(elementRef, focusKey);
454
483
  longPressFocusedElement(focusKey);
@@ -466,6 +495,14 @@ export function FocusContextProvider(props) {
466
495
  }
467
496
  callback(kind, action);
468
497
  }
498
+ if (DEBUG_FOCUS === 'verbose') {
499
+ prettyLog({
500
+ action: 'remoteHandler',
501
+ kind,
502
+ action,
503
+ focusedKey: focusedKeyRef.current
504
+ });
505
+ }
469
506
  switch (kind) {
470
507
  case 'select':
471
508
  pressFocusedElement();
@@ -548,18 +585,32 @@ export function FocusContextProvider(props) {
548
585
  }
549
586
  return focusProps;
550
587
  };
588
+
589
+ // If these are omitted, then TV remote doesn't work on first launch
590
+ // This is another low level helper for wired components
591
+ // Nothing outside snowui should need it
592
+ const tvRemoteProps = elementProps => {
593
+ if (!Platform.isTV || !elementProps.focusStart) {
594
+ return {};
595
+ }
596
+ return {
597
+ focusable: elementProps.focusStart,
598
+ hasTVPreferredFocus: elementProps.focusStart
599
+ };
600
+ };
551
601
  const focusContext = {
552
602
  DEBUG_FOCUS,
553
603
  focusedKey,
604
+ currentLayer,
605
+ isFocused,
606
+ isFocusedLayer,
607
+ tvRemoteProps,
554
608
  useFocusWiring,
555
609
  addFocusMap,
556
610
  useFocusLayer,
557
611
  popFocusLayer,
558
612
  pushFocusLayer,
559
613
  clearFocusLayers,
560
- isFocused,
561
- isFocusedLayer,
562
- layersAreClear: focusedKey === null,
563
614
  readFocusProps,
564
615
  setRemoteCallbacks,
565
616
  setScrollViewRef,
@@ -1 +1 @@
1
- {"version":3,"names":["React","_","Platform","useTVEventHandler","Keyboard","findNodeHandle","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","layerMaps","at","pushFocusLayer","layerIsUncloned","prev","result","push","popFocusLayer","pop","useFocusLayer","name","isUncloned","useLayoutEffect","useFocusWiring","elementProps","addFocusMap","focusOn","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","longPressFocusedElement","focusPress","isTV","focusLongPress","remoteHandler","remoteEvent","callbacks","kind","eventType","eventKeyAction","callback","Object","entries","focusKeyboardHandler","event","code","window","addEventListener","removeEventListener","readFocusProps","focusProps","focusContext","layersAreClear","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","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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-snowui",
3
- "version": "1.2.9",
3
+ "version": "1.2.11",
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",
@@ -7,7 +7,7 @@ import SnowText from '../snow-text'
7
7
 
8
8
  const SnowImageButtonW = (props) => {
9
9
  const { SnowStyle } = useStyleContext(props)
10
- const { isFocused, useFocusWiring, focusPress, focusLongPress } = useFocusContext()
10
+ const { isFocused, useFocusWiring, focusPress, focusLongPress, tvRemoteProps } = useFocusContext()
11
11
  const elementRef = useFocusWiring(props)
12
12
 
13
13
  let fontStyle = [SnowStyle.component.imageButton.text]
@@ -57,6 +57,7 @@ const SnowImageButtonW = (props) => {
57
57
  <View>
58
58
  <Pressable
59
59
  ref={elementRef}
60
+ {...tvRemoteProps(props)}
60
61
  style={wrapperStyle}
61
62
  onPress={focusPress(elementRef, props.focusKey)}
62
63
  onLongPress={focusLongPress(elementRef, props.focusKey)}
@@ -5,7 +5,7 @@ import { useFocusContext } from '../../context/snow-focus-context'
5
5
 
6
6
  const SnowInputW = (props) => {
7
7
  const { SnowStyle, SnowConfig } = useStyleContext(props)
8
- const { isFocused, useFocusWiring } = useFocusContext()
8
+ const { isFocused, useFocusWiring, tvRemoteProps } = useFocusContext()
9
9
  const elementRef = useFocusWiring(props)
10
10
 
11
11
  let textStyle = [SnowStyle.component.input.text]
@@ -22,6 +22,7 @@ const SnowInputW = (props) => {
22
22
  }
23
23
  return <TextInput
24
24
  ref={elementRef}
25
+ {...tvRemoteProps(props)}
25
26
  secureTextEntry={props.secureTextEntry}
26
27
  style={textStyle}
27
28
  editable={true}
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import {
3
3
  PanResponder,
4
+ Platform,
4
5
  Pressable,
5
6
  View
6
7
  } from "react-native";
@@ -116,18 +117,41 @@ const SnowRangeSliderW = (props) => {
116
117
  percentRef.current = percent
117
118
  }, [percent])
118
119
 
119
- React.useEffect(() => {
120
- setRemoteCallbacks((callbacks) => {
121
- callbacks['slider'] = sliderHandleRemote
122
- return callbacks
123
- })
124
- return () => {
120
+ if (Platform.isTV) {
121
+ React.useEffect(() => {
125
122
  setRemoteCallbacks((callbacks) => {
126
- callbacks['slider'] = null
123
+ callbacks['slider'] = sliderHandleRemote
127
124
  return callbacks
128
125
  })
129
- }
130
- })
126
+ return () => {
127
+ setRemoteCallbacks((callbacks) => {
128
+ callbacks['slider'] = null
129
+ return callbacks
130
+ })
131
+ }
132
+ }, [])
133
+ }
134
+
135
+ if (Platform.OS === 'web') {
136
+ React.useEffect(() => {
137
+ const rangeSliderKeyboardHandler = (event) => {
138
+ switch (event.key) {
139
+ case 'ArrowLeft':
140
+ applyStep(-step)
141
+ break
142
+ case 'ArrowRight':
143
+ applyStep(step)
144
+ break
145
+ default:
146
+ break
147
+ }
148
+ };
149
+ window.addEventListener('keydown', rangeSliderKeyboardHandler);
150
+ return () => {
151
+ window.removeEventListener('keydown', rangeSliderKeyboardHandler);
152
+ };
153
+ }, []);
154
+ }
131
155
 
132
156
  const applyStep = (amount) => {
133
157
  let result = percentRef.current + amount
@@ -222,7 +246,6 @@ const SnowRangeSliderW = (props) => {
222
246
  ref={elementRef}
223
247
  style={thumbStyle}
224
248
  onLayout={handleLayout('thumb')}
225
- focusStart={props.focusStart}
226
249
  focusKey={props.focusKey}
227
250
  focusUp={props.focusUp}
228
251
  focusDown={props.focusDown}
@@ -5,7 +5,7 @@ import SnowText from '../snow-text'
5
5
 
6
6
  const SnowTextButtonW = (props) => {
7
7
  const { SnowStyle } = useStyleContext(props)
8
- const { isFocused, focusPress, focusLongPress, useFocusWiring } = useFocusContext()
8
+ const { isFocused, focusPress, focusLongPress, useFocusWiring, tvRemoteProps } = useFocusContext()
9
9
  const elementRef = useFocusWiring(props)
10
10
 
11
11
  const wrapperStyle = [SnowStyle.component.textButton.wrapper]
@@ -50,10 +50,13 @@ const SnowTextButtonW = (props) => {
50
50
  return (
51
51
  <Pressable
52
52
  ref={elementRef}
53
+ {...tvRemoteProps(props)}
53
54
  style={wrapperStyle}
54
55
  onPress={focusPress(elementRef, props.focusKey)}
55
56
  onLongPress={focusLongPress(elementRef, props.focusKey)}
56
- disabled={props.disabled}>
57
+ disabled={props.disabled}
58
+
59
+ >
57
60
  <SnowText noSelect style={textStyle}>{props.title}</SnowText>
58
61
  </Pressable >
59
62
  )
@@ -5,7 +5,7 @@ import { SnowLabel } from '../snow-label'
5
5
 
6
6
  const SnowToggleW = (props) => {
7
7
  const { SnowStyle } = useStyleContext(props)
8
- const { useFocusWiring, isFocused } = useFocusContext()
8
+ const { useFocusWiring, isFocused, tvRemoteProps } = useFocusContext()
9
9
  const elementRef = useFocusWiring(props)
10
10
 
11
11
  const toggleValue = () => {
@@ -28,6 +28,7 @@ const SnowToggleW = (props) => {
28
28
  return (
29
29
  <Pressable
30
30
  ref={elementRef}
31
+ {...tvRemoteProps(props)}
31
32
  style={SnowStyle.component.toggle.center}
32
33
  onPress={toggleValue}
33
34
  >
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
2
  import _ from 'lodash'
3
- import { Platform, useTVEventHandler, Keyboard, findNodeHandle } from 'react-native'
3
+ import { Platform, useTVEventHandler, Keyboard } from 'react-native'
4
4
  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
+
8
10
  Focus can get lost if in a tabs element there is only text.
9
11
  Nothing inside the tab should be selectable, but the outer view gets a focusKey
10
12
 
@@ -113,7 +115,7 @@ export function FocusContextProvider(props) {
113
115
 
114
116
  const isFocusedLayer = (layerName) => {
115
117
  if (DEBUG_FOCUS === 'verbose') {
116
- prettyLog({ action: 'isFocusedLayer', layerName, layerMaps })
118
+ prettyLog({ action: 'isFocusedLayer', layerName, focusLayers })
117
119
  }
118
120
  return layerName && focusLayers.at(-1).layerName === layerName
119
121
  }
@@ -132,7 +134,7 @@ export function FocusContextProvider(props) {
132
134
  else {
133
135
  result.push({ layerName, refs: { ...prev.at(-1).refs }, directions: { ...prev.at(-1).directions } })
134
136
  }
135
- if (DEBUG_FOCUS) {
137
+ if (DEBUG_FOCUS === 'verbose') {
136
138
  prettyLog({ action: 'pushFocusLayer', layerName, focusLayers: result })
137
139
  }
138
140
  return result
@@ -163,17 +165,21 @@ export function FocusContextProvider(props) {
163
165
 
164
166
  // This is only used by low level components to interact with the focus system
165
167
  const useFocusWiring = (elementProps) => {
166
- const { addFocusMap, focusOn, currentLayer } = useFocusContext();
168
+ const { addFocusMap, currentLayer } = useFocusContext();
169
+ const [startedFocused, setStartedFocused] = React.useState(false)
167
170
  const elementRef = React.useRef(null);
168
171
 
169
172
  React.useEffect(() => {
170
173
  if (elementRef.current) {
171
- addFocusMap(elementRef, elementProps);
172
- if (elementProps.focusStart) {
173
- focusOn(elementRef, elementProps.focusKey);
174
+ const focusOnAdd = !startedFocused && elementProps.focusStart
175
+ addFocusMap(elementRef, elementProps, focusOnAdd);
176
+ if (focusOnAdd) {
177
+ setStartedFocused(true)
174
178
  }
179
+
175
180
  }
176
181
  }, [
182
+ elementProps.focusStart,
177
183
  elementProps.focusKey,
178
184
  elementProps.focusDown,
179
185
  elementProps.focusUp,
@@ -205,7 +211,7 @@ export function FocusContextProvider(props) {
205
211
  })
206
212
  }
207
213
 
208
- const addFocusMap = (elementRef, elementProps) => {
214
+ const addFocusMap = (elementRef, elementProps, elementStartsFocused) => {
209
215
  const focusKey = elementProps.focusKey
210
216
  const refs = {
211
217
  [focusKey]: {
@@ -214,6 +220,9 @@ export function FocusContextProvider(props) {
214
220
  onLongPress: elementProps.onLongPress
215
221
  }
216
222
  }
223
+ if (elementStartsFocused) {
224
+ focusedKeyRef.current = elementProps.focusKey
225
+ }
217
226
  let focus = {}
218
227
  if (elementProps.focusUp) {
219
228
  focus['up'] = elementProps.focusUp
@@ -230,7 +239,7 @@ export function FocusContextProvider(props) {
230
239
  const directions = {
231
240
  [focusKey]: focus
232
241
  }
233
- if (DEBUG_FOCUS) {
242
+ if (DEBUG_FOCUS === 'verbose') {
234
243
  prettyLog({ action: 'addFocusMap', elementRef, elementProps, focusKey, refs, directions })
235
244
  }
236
245
  setFocusLayers((prev) => {
@@ -271,9 +280,16 @@ export function FocusContextProvider(props) {
271
280
  result[result.length - 1] = _.merge({}, { ...focusLayer }, { refs, directions })
272
281
  return result
273
282
  })
283
+ if (elementStartsFocused) {
284
+ elementRef.current.focus()
285
+ setFocusedKey(elementProps.focusKey)
286
+ }
274
287
  }
275
288
 
276
289
  const focusOn = (elementRef, focusKey) => {
290
+ if (DEBUG_FOCUS) {
291
+ prettyLog({ action: 'focusOn', focusKey, elementRef })
292
+ }
277
293
  elementRef.current.focus()
278
294
  let scroll = focusLayersRef.current?.at(-1)?.scrollViewRef
279
295
  if (scroll) {
@@ -378,7 +394,11 @@ export function FocusContextProvider(props) {
378
394
  focusKey = focusedKeyRef.current
379
395
  }
380
396
  const focusMap = focusLayersRef.current.at(-1)
381
- if (Keyboard.isVisible() || !(focusMap?.refs?.[focusKey]?.onPress)) {
397
+ const canPress = Keyboard.isVisible() || !(focusMap?.refs?.[focusKey]?.onPress)
398
+ if (DEBUG_FOCUS) {
399
+ prettyLog({ action: 'pressFocusedElement', focusKey, canPress, keyboardVisible: Keyboard.isVisible(), onPress: focusMap?.refs?.[focusKey]?.onPress })
400
+ }
401
+ if (canPress) {
382
402
  return false
383
403
  }
384
404
  return focusMap.refs[focusKey].onPress()
@@ -389,17 +409,17 @@ export function FocusContextProvider(props) {
389
409
  focusKey = focusedKeyRef.current
390
410
  }
391
411
  const focusMap = focusLayersRef.current.at(-1)
392
- if (Keyboard.isVisible() || !(focusMap?.refs?.[focusKey]?.onLongPress)) {
412
+ const canPress = Keyboard.isVisible() || !(focusMap?.refs?.[focusKey]?.onLongPress)
413
+ if (DEBUG_FOCUS) {
414
+ prettyLog({ action: 'longPressFocusedElement', focusKey, canPress, keyboardVisible: Keyboard.isVisible(), onLongPress: focusMap?.refs?.[focusKey]?.onLongPress })
415
+ }
416
+ if (canPress) {
393
417
  return false
394
418
  }
395
419
  return focusMap.refs[focusKey].onLongPress()
396
420
  }
397
421
 
398
422
  const focusPress = (elementRef, focusKey) => {
399
- // This is done by the remoteHandler on TV
400
- if (Platform.isTV) {
401
- return () => { }
402
- }
403
423
  return () => {
404
424
  focusOn(elementRef, focusKey)
405
425
  pressFocusedElement(focusKey)
@@ -407,10 +427,6 @@ export function FocusContextProvider(props) {
407
427
  }
408
428
 
409
429
  const focusLongPress = (elementRef, focusKey) => {
410
- // This is done by the remoteHandler on TV
411
- if (Platform.isTV) {
412
- return () => { }
413
- }
414
430
  return () => {
415
431
  focusOn(elementRef, focusKey)
416
432
  longPressFocusedElement(focusKey)
@@ -429,6 +445,9 @@ export function FocusContextProvider(props) {
429
445
  }
430
446
  callback(kind, action)
431
447
  }
448
+ if (DEBUG_FOCUS === 'verbose') {
449
+ prettyLog({ action: 'remoteHandler', kind, action, focusedKey: focusedKeyRef.current })
450
+ }
432
451
  switch (kind) {
433
452
  case 'select':
434
453
  pressFocusedElement()
@@ -517,18 +536,32 @@ export function FocusContextProvider(props) {
517
536
  return focusProps
518
537
  }
519
538
 
539
+ // If these are omitted, then TV remote doesn't work on first launch
540
+ // This is another low level helper for wired components
541
+ // Nothing outside snowui should need it
542
+ const tvRemoteProps = (elementProps) => {
543
+ if (!Platform.isTV || !elementProps.focusStart) {
544
+ return {}
545
+ }
546
+ return {
547
+ focusable: elementProps.focusStart,
548
+ hasTVPreferredFocus: elementProps.focusStart
549
+ }
550
+ }
551
+
520
552
  const focusContext = {
521
553
  DEBUG_FOCUS,
522
554
  focusedKey,
555
+ currentLayer,
556
+ isFocused,
557
+ isFocusedLayer,
558
+ tvRemoteProps,
523
559
  useFocusWiring,
524
560
  addFocusMap,
525
561
  useFocusLayer,
526
562
  popFocusLayer,
527
563
  pushFocusLayer,
528
564
  clearFocusLayers,
529
- isFocused,
530
- isFocusedLayer,
531
- layersAreClear: focusedKey === null,
532
565
  readFocusProps,
533
566
  setRemoteCallbacks,
534
567
  setScrollViewRef,