expo-snowui 1.5.2 → 1.5.3

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.
@@ -6,33 +6,62 @@ import { useStyleContext } from "../context/snow-style-context.js";
6
6
  import { useFocusContext } from "../context/snow-focus-context.js";
7
7
  import { useLayerContext } from "../context/snow-layer-context.js";
8
8
  import util from "../util.js";
9
+ import { SnowModal } from "./wired/snow-modal.js";
10
+ import { SnowOverlay } from "./wired/snow-overlay.js";
9
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
12
  export function SnowSafeArea(props) {
11
13
  const {
12
14
  SnowStyle
13
15
  } = useStyleContext(props);
14
16
  const {
15
- currentModal,
16
- currentOverlay
17
+ modalPayload,
18
+ overlayPayload,
19
+ DEBUG_LAYERS
17
20
  } = useLayerContext();
18
21
  const {
19
22
  setScrollViewRef
20
23
  } = useFocusContext();
21
24
  const scrollViewRef = React.useRef(null);
25
+
26
+ // This allows modals and overlays to draw on top of the regular app
27
+ // Enabling things like fullscreen video
28
+ // It requires a rendering function instead of computed JSX
29
+ // Otherwise controlled forms inside a modal would not update their state
30
+ let modal = null;
31
+ if (modalPayload) {
32
+ modal = /*#__PURE__*/_jsx(SnowModal, {
33
+ ...modalPayload.props,
34
+ render: modalPayload.render
35
+ });
36
+ }
37
+ let overlay = null;
38
+ if (overlayPayload) {
39
+ overlay = /*#__PURE__*/_jsx(SnowOverlay, {
40
+ ...overlayPayload.props
41
+ });
42
+ }
22
43
  React.useEffect(() => {
23
44
  if (scrollViewRef.current) {
24
45
  setScrollViewRef(scrollViewRef);
25
46
  }
26
47
  }, [scrollViewRef]);
48
+ if (DEBUG_LAYERS) {
49
+ util.prettyLog({
50
+ component: 'safe-area',
51
+ action: 'render',
52
+ modalPayload,
53
+ overlayPayload
54
+ });
55
+ }
27
56
  return /*#__PURE__*/_jsxs(View, {
28
57
  style: util.blankStyle,
29
58
  children: [/*#__PURE__*/_jsx(ScrollView, {
30
59
  ref: scrollViewRef,
31
60
  style: SnowStyle.component.safeArea,
32
61
  snowStyle: SnowStyle,
33
- showsVerticalScrollIndicator: !currentModal,
62
+ showsVerticalScrollIndicator: !modalPayload,
34
63
  children: props.children
35
- }), currentModal, currentOverlay]
64
+ }), modal, overlay]
36
65
  });
37
66
  }
38
67
  export default SnowSafeArea;
@@ -1 +1 @@
1
- {"version":3,"names":["React","ScrollView","View","useStyleContext","useFocusContext","useLayerContext","util","jsx","_jsx","jsxs","_jsxs","SnowSafeArea","props","SnowStyle","currentModal","currentOverlay","setScrollViewRef","scrollViewRef","useRef","useEffect","current","style","blankStyle","children","ref","component","safeArea","snowStyle","showsVerticalScrollIndicator"],"sourceRoot":"../../../src","sources":["component/snow-safe-area.js"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,eAAe,QAAQ,kCAA+B;AAC/D,SAASC,eAAe,QAAQ,kCAA+B;AAC/D,SAASC,eAAe,QAAQ,kCAA+B;AAC/D,OAAOC,IAAI,MAAM,YAAS;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE1B,OAAO,SAASC,YAAYA,CAACC,KAAK,EAAE;EAChC,MAAM;IAAEC;EAAU,CAAC,GAAGV,eAAe,CAACS,KAAK,CAAC;EAC5C,MAAM;IAAEE,YAAY;IAAEC;EAAe,CAAC,GAAGV,eAAe,CAAC,CAAC;EAC1D,MAAM;IAAEW;EAAiB,CAAC,GAAGZ,eAAe,CAAC,CAAC;EAC9C,MAAMa,aAAa,GAAGjB,KAAK,CAACkB,MAAM,CAAC,IAAI,CAAC;EAExClB,KAAK,CAACmB,SAAS,CAAC,MAAM;IAClB,IAAIF,aAAa,CAACG,OAAO,EAAE;MACvBJ,gBAAgB,CAACC,aAAa,CAAC;IACnC;EACJ,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,oBACIP,KAAA,CAACR,IAAI;IAACmB,KAAK,EAAEf,IAAI,CAACgB,UAAW;IAAAC,QAAA,gBACzBf,IAAA,CAACP,UAAU;MACPuB,GAAG,EAAEP,aAAc;MACnBI,KAAK,EAAER,SAAS,CAACY,SAAS,CAACC,QAAS;MACpCC,SAAS,EAAEd,SAAU;MACrBe,4BAA4B,EAAE,CAACd,YAAa;MAAAS,QAAA,EAE3CX,KAAK,CAACW;IAAQ,CACP,CAAC,EACZT,YAAY,EACZC,cAAc;EAAA,CACb,CAAC;AAEf;AAEA,eAAeJ,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["React","ScrollView","View","useStyleContext","useFocusContext","useLayerContext","util","SnowModal","SnowOverlay","jsx","_jsx","jsxs","_jsxs","SnowSafeArea","props","SnowStyle","modalPayload","overlayPayload","DEBUG_LAYERS","setScrollViewRef","scrollViewRef","useRef","modal","render","overlay","useEffect","current","prettyLog","component","action","style","blankStyle","children","ref","safeArea","snowStyle","showsVerticalScrollIndicator"],"sourceRoot":"../../../src","sources":["component/snow-safe-area.js"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,eAAe,QAAQ,kCAA+B;AAC/D,SAASC,eAAe,QAAQ,kCAA+B;AAC/D,SAASC,eAAe,QAAQ,kCAA+B;AAC/D,OAAOC,IAAI,MAAM,YAAS;AAC1B,SAASC,SAAS,QAAQ,uBAAoB;AAC9C,SAASC,WAAW,QAAQ,yBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,OAAO,SAASC,YAAYA,CAACC,KAAK,EAAE;EAChC,MAAM;IAAEC;EAAU,CAAC,GAAGZ,eAAe,CAACW,KAAK,CAAC;EAC5C,MAAM;IAAEE,YAAY;IAAEC,cAAc;IAAEC;EAAa,CAAC,GAAGb,eAAe,CAAC,CAAC;EACxE,MAAM;IAAEc;EAAiB,CAAC,GAAGf,eAAe,CAAC,CAAC;EAC9C,MAAMgB,aAAa,GAAGpB,KAAK,CAACqB,MAAM,CAAC,IAAI,CAAC;;EAExC;EACA;EACA;EACA;EACA,IAAIC,KAAK,GAAG,IAAI;EAChB,IAAIN,YAAY,EAAE;IACdM,KAAK,gBAAGZ,IAAA,CAACH,SAAS;MAAA,GAAKS,YAAY,CAACF,KAAK;MAAES,MAAM,EAAEP,YAAY,CAACO;IAAO,CAAE,CAAC;EAC9E;EAEA,IAAIC,OAAO,GAAG,IAAI;EAClB,IAAIP,cAAc,EAAE;IAChBO,OAAO,gBAAGd,IAAA,CAACF,WAAW;MAAA,GAAKS,cAAc,CAACH;IAAK,CAAG,CAAC;EACvD;EAEAd,KAAK,CAACyB,SAAS,CAAC,MAAM;IAClB,IAAIL,aAAa,CAACM,OAAO,EAAE;MACvBP,gBAAgB,CAACC,aAAa,CAAC;IACnC;EACJ,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,IAAIF,YAAY,EAAE;IACdZ,IAAI,CAACqB,SAAS,CAAC;MAAEC,SAAS,EAAE,WAAW;MAAEC,MAAM,EAAE,QAAQ;MAAEb,YAAY;MAAEC;IAAe,CAAC,CAAC;EAC9F;EAEA,oBACIL,KAAA,CAACV,IAAI;IAAC4B,KAAK,EAAExB,IAAI,CAACyB,UAAW;IAAAC,QAAA,gBACzBtB,IAAA,CAACT,UAAU;MACPgC,GAAG,EAAEb,aAAc;MACnBU,KAAK,EAAEf,SAAS,CAACa,SAAS,CAACM,QAAS;MACpCC,SAAS,EAAEpB,SAAU;MACrBqB,4BAA4B,EAAE,CAACpB,YAAa;MAAAgB,QAAA,EAC3ClB,KAAK,CAACkB;IAAQ,CACP,CAAC,EACZV,KAAK,EACLE,OAAO;EAAA,CACN,CAAC;AAEf;AAEA,eAAeX,YAAY","ignoreList":[]}
@@ -4,8 +4,6 @@ import React from 'react';
4
4
  import { View } from 'react-native';
5
5
  import { useFocusContext } from "../../context/snow-focus-context.js";
6
6
  import { useInputContext } from "../../context/snow-input-context.js";
7
- import { useLayerContext } from "../../context/snow-layer-context.js";
8
- import { useNavigationContext } from "../../context/snow-navigation-context.js";
9
7
  import { useStyleContext } from "../../context/snow-style-context.js";
10
8
  import SnowFillView from "../snow-fill-view.js";
11
9
  import SnowText from "../snow-text.js";
@@ -22,10 +20,6 @@ const SnowModalW = props => {
22
20
  pushFocusLayer,
23
21
  popFocusLayer
24
22
  } = useFocusContext(props);
25
- const {
26
- pushModal,
27
- popModal
28
- } = useLayerContext(props);
29
23
  if (!props.onRequestClose) {
30
24
  return /*#__PURE__*/_jsx(SnowText, {
31
25
  children: "SnowModal requires an onRequestClose prop"
@@ -36,15 +30,25 @@ const SnowModalW = props => {
36
30
  return /*#__PURE__*/_jsx(SnowText, {
37
31
  children: "SnowModal requires a focusLayer prop"
38
32
  });
39
- } else {
40
- React.useEffect(() => {
41
- pushFocusLayer(`snow-modal-${props.focusLayer}`, true);
42
- return () => {
43
- popFocusLayer();
44
- };
45
- }, []);
46
33
  }
47
34
  }
35
+ React.useEffect(() => {
36
+ if (props.assignFocus && props.focusLayer) {
37
+ pushFocusLayer(`snow-modal-${props.focusLayer}`, true);
38
+ return () => {
39
+ popFocusLayer();
40
+ };
41
+ }
42
+ }, []);
43
+ React.useEffect(() => {
44
+ const backListenerKey = addBackListener(() => {
45
+ props.onRequestClose();
46
+ return true;
47
+ });
48
+ return () => {
49
+ removeBackListener(backListenerKey);
50
+ };
51
+ }, []);
48
52
  let style = [SnowStyle.component.modal.prompt];
49
53
  if (props.transparent) {
50
54
  style.push(SnowStyle.component.modal.transparent);
@@ -55,47 +59,33 @@ const SnowModalW = props => {
55
59
  if (props.contentStyle) {
56
60
  style.push(props.contentStyle);
57
61
  }
58
- let modalView = null;
62
+ let modalContent = null;
59
63
  if (props.wrapper === false) {
60
- modalView = /*#__PURE__*/_jsx(View, {
64
+ modalContent = /*#__PURE__*/_jsx(View, {
61
65
  navigationBarTranslucent: true,
62
66
  statusBarTranslucent: true,
63
67
  transparent: props.transparent,
64
68
  style: style,
65
- children: props.children
69
+ children: props.render()
66
70
  });
67
71
  } else {
68
72
  let modalStyle = [SnowStyle.component.modal.default, SnowStyle.component.modal.prompt];
69
73
  if (props.modalStyle) {
70
74
  modalStyle.push(props.modalStyle);
71
75
  }
72
- let modalContent = /*#__PURE__*/_jsx(SnowFillView, {
73
- scroll: props.scroll,
74
- children: props.children,
75
- style: style
76
- });
77
- modalView = /*#__PURE__*/_jsx(View, {
76
+ modalContent = /*#__PURE__*/_jsx(View, {
78
77
  style: modalStyle,
79
78
  navigationBarTranslucent: true,
80
79
  statusBarTranslucent: true,
81
80
  transparent: props.transparent,
82
- children: modalContent
81
+ children: /*#__PURE__*/_jsx(SnowFillView, {
82
+ scroll: props.scroll,
83
+ style: style,
84
+ children: props.render()
85
+ })
83
86
  });
84
87
  }
85
- if (modalView) {
86
- React.useEffect(() => {
87
- pushModal(modalView);
88
- const backListenerKey = addBackListener(() => {
89
- props.onRequestClose();
90
- return true;
91
- });
92
- return () => {
93
- removeBackListener(backListenerKey);
94
- popModal();
95
- };
96
- }, []);
97
- }
98
- return null;
88
+ return modalContent;
99
89
  };
100
90
  SnowModalW.isSnowFocusWired = true;
101
91
  export const SnowModal = SnowModalW;
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","useFocusContext","useInputContext","useLayerContext","useNavigationContext","useStyleContext","SnowFillView","SnowText","jsx","_jsx","SnowModalW","props","SnowStyle","addBackListener","removeBackListener","pushFocusLayer","popFocusLayer","pushModal","popModal","onRequestClose","children","assignFocus","focusLayer","useEffect","style","component","modal","prompt","transparent","push","center","contentStyle","modalView","wrapper","navigationBarTranslucent","statusBarTranslucent","modalStyle","default","modalContent","scroll","backListenerKey","isSnowFocusWired","SnowModal"],"sourceRoot":"../../../../src","sources":["component/wired/snow-modal.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","useFocusContext","useInputContext","useStyleContext","SnowFillView","SnowText","jsx","_jsx","SnowModalW","props","SnowStyle","addBackListener","removeBackListener","pushFocusLayer","popFocusLayer","onRequestClose","children","assignFocus","focusLayer","useEffect","backListenerKey","style","component","modal","prompt","transparent","push","center","contentStyle","modalContent","wrapper","navigationBarTranslucent","statusBarTranslucent","render","modalStyle","default","scroll","isSnowFocusWired","SnowModal"],"sourceRoot":"../../../../src","sources":["component/wired/snow-modal.js"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ import { useStyleContext } from "../../context/snow-style-context.js";
6
6
  import { useFocusContext } from "../../context/snow-focus-context.js";
7
7
  import { useLayerContext } from "../../context/snow-layer-context.js";
8
8
  import SnowText from "../snow-text.js";
9
+ import SnowFillView from "../snow-fill-view.js";
9
10
  import { jsx as _jsx } from "react/jsx-runtime";
10
11
  const SnowOverlayW = props => {
11
12
  const {
@@ -18,12 +19,9 @@ const SnowOverlayW = props => {
18
19
  pushFocusLayer,
19
20
  popFocusLayer,
20
21
  focusedLayer,
21
- addFocusMap
22
+ addFocusMap,
23
+ readFocusProps
22
24
  } = useFocusContext();
23
- const {
24
- pushOverlay,
25
- popOverlay
26
- } = useLayerContext(props);
27
25
  if (!props.focusLayer) {
28
26
  return /*#__PURE__*/_jsx(SnowText, {
29
27
  children: "SnowOverlay requires a focusLayer prop"
@@ -51,23 +49,17 @@ const SnowOverlayW = props => {
51
49
  if (props.black) {
52
50
  style.push(SnowStyle.component.overlay.black);
53
51
  }
54
- const overlayView = /*#__PURE__*/_jsx(TouchableOpacity, {
52
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
55
53
  ref: elementRef,
56
54
  ...tvRemoteProps,
55
+ ...readFocusProps(props),
57
56
  style: style,
58
57
  activeOpacity: 1 // Without this, the overlay applies a white filter to anything underneath
59
58
  ,
60
59
  onPress: focusPress(elementRef, props.focusKey),
61
60
  onLongPress: focusLongPress(elementRef, props.focusKey),
62
- children: props.children
61
+ children: /*#__PURE__*/_jsx(SnowFillView, {})
63
62
  });
64
- React.useEffect(() => {
65
- pushOverlay(overlayView);
66
- return () => {
67
- popOverlay();
68
- };
69
- }, []);
70
- return null;
71
63
  };
72
64
  SnowOverlayW.isSnowFocusWired = true;
73
65
  export const SnowOverlay = SnowOverlayW;
@@ -1 +1 @@
1
- {"version":3,"names":["React","TouchableOpacity","useStyleContext","useFocusContext","useLayerContext","SnowText","jsx","_jsx","SnowOverlayW","props","SnowStyle","focusLongPress","focusPress","tvRemoteProps","pushFocusLayer","popFocusLayer","focusedLayer","addFocusMap","pushOverlay","popOverlay","focusLayer","children","isReady","setIsReady","useState","elementRef","useRef","focusLayerName","useEffect","current","focusStart","focusKey","focusDown","focusUp","focusRight","focusLeft","style","component","overlay","touchable","transparent","push","black","overlayView","ref","activeOpacity","onPress","onLongPress","isSnowFocusWired","SnowOverlay"],"sourceRoot":"../../../../src","sources":["component/wired/snow-overlay.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","TouchableOpacity","useStyleContext","useFocusContext","useLayerContext","SnowText","SnowFillView","jsx","_jsx","SnowOverlayW","props","SnowStyle","focusLongPress","focusPress","tvRemoteProps","pushFocusLayer","popFocusLayer","focusedLayer","addFocusMap","readFocusProps","focusLayer","children","isReady","setIsReady","useState","elementRef","useRef","focusLayerName","useEffect","current","focusStart","focusKey","focusDown","focusUp","focusRight","focusLeft","style","component","overlay","touchable","transparent","push","black","ref","activeOpacity","onPress","onLongPress","isSnowFocusWired","SnowOverlay"],"sourceRoot":"../../../../src","sources":["component/wired/snow-overlay.js"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,cAAc;AAC/C,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,SAASC,eAAe,QAAQ,qCAAkC;AAClE,OAAOC,QAAQ,MAAM,iBAAc;AACnC,OAAOC,YAAY,MAAM,sBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE5C,MAAMC,YAAY,GAAIC,KAAK,IAAK;EAC5B,MAAM;IAAEC;EAAU,CAAC,GAAGT,eAAe,CAACQ,KAAK,CAAC;EAC5C,MAAM;IACFE,cAAc;IACdC,UAAU;IACVC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC,YAAY;IACZC,WAAW;IACXC;EACJ,CAAC,GAAGhB,eAAe,CAAC,CAAC;EAErB,IAAI,CAACO,KAAK,CAACU,UAAU,EAAE;IACnB,oBAAOZ,IAAA,CAACH,QAAQ;MAAAgB,QAAA,EAAC;IAAsC,CAAU,CAAC;EACtE;EAEA,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGvB,KAAK,CAACwB,QAAQ,CAAC,KAAK,CAAC;EAEnD,MAAMC,UAAU,GAAGzB,KAAK,CAAC0B,MAAM,CAAC,IAAI,CAAC;EACrC,MAAMC,cAAc,GAAG,gBAAgBjB,KAAK,CAACU,UAAU,EAAE;EAEzDpB,KAAK,CAAC4B,SAAS,CAAC,MAAM;IAClBb,cAAc,CAACY,cAAc,EAAE,IAAI,CAAC;IACpCJ,UAAU,CAAC,IAAI,CAAC;IAChB,OAAO,MAAM;MACTP,aAAa,CAAC,CAAC;IACnB,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAENhB,KAAK,CAAC4B,SAAS,CAAC,MAAM;IAClB,IAAIN,OAAO,IAAIG,UAAU,CAACI,OAAO,EAAE;MAC/BX,WAAW,CAACO,UAAU,EAAEf,KAAK,CAAC;IAClC;EACJ,CAAC,EAAE,CACCA,KAAK,CAACoB,UAAU,EAChBpB,KAAK,CAACqB,QAAQ,EACdrB,KAAK,CAACsB,SAAS,EACftB,KAAK,CAACuB,OAAO,EACbvB,KAAK,CAACwB,UAAU,EAChBxB,KAAK,CAACyB,SAAS,EACflB,YAAY,EACZQ,UAAU,EACVH,OAAO,CACV,CAAC;EAEF,IAAIc,KAAK,GAAG,CAACzB,SAAS,CAAC0B,SAAS,CAACC,OAAO,CAACC,SAAS,CAAC;EACnD,IAAI7B,KAAK,CAAC8B,WAAW,EAAE;IACnBJ,KAAK,CAACK,IAAI,CAAC9B,SAAS,CAAC0B,SAAS,CAACC,OAAO,CAACE,WAAW,CAAC;EACvD;EACA,IAAI9B,KAAK,CAACgC,KAAK,EAAE;IACbN,KAAK,CAACK,IAAI,CAAC9B,SAAS,CAAC0B,SAAS,CAACC,OAAO,CAACI,KAAK,CAAC;EACjD;EAEA,oBACIlC,IAAA,CAACP,gBAAgB;IACb0C,GAAG,EAAElB,UAAW;IAAA,GACZX,aAAa;IAAA,GACbK,cAAc,CAACT,KAAK,CAAC;IACzB0B,KAAK,EAAEA,KAAM;IACbQ,aAAa,EAAE,CAAE,CAAC;IAAA;IAClBC,OAAO,EAAEhC,UAAU,CAACY,UAAU,EAAEf,KAAK,CAACqB,QAAQ,CAAE;IAChDe,WAAW,EAAElC,cAAc,CAACa,UAAU,EAAEf,KAAK,CAACqB,QAAQ,CAAE;IAAAV,QAAA,eACxDb,IAAA,CAACF,YAAY,IAAe;EAAC,CACf,CAAC;AAE3B,CAAC;AAEDG,YAAY,CAACsC,gBAAgB,GAAG,IAAI;AAEpC,OAAO,MAAMC,WAAW,GAAGvC,YAAY;AAEvC,eAAeuC,WAAW","ignoreList":[]}
@@ -12,113 +12,67 @@ export function useLayerContext() {
12
12
  return value;
13
13
  }
14
14
  export function LayerContextProvider(props) {
15
- const [modals, setModals] = React.useState([]);
16
- const [overlays, setOverlays] = React.useState([]);
17
- const modalRef = React.useRef(null);
18
- const overlayRef = React.useRef(null);
15
+ const [modalPayload, setModalPayload] = React.useState(null);
16
+ const [overlayPayload, setOverlayPayload] = React.useState(null);
19
17
  const DEBUG = props.DEBUG_LAYERS;
20
- const pushOverlay = overlay => {
21
- setOverlays(prev => {
22
- if (DEBUG) {
23
- prettyLog({
24
- context: 'layer',
25
- action: 'pushOverlay',
26
- prev,
27
- overlay
28
- });
29
- }
30
- overlayRef.current = overlay;
31
- return [...prev, overlay];
32
- });
33
- };
34
- const popOverlay = () => {
35
- setOverlays(prev => {
36
- let result = [...prev];
37
- if (result.length) {
38
- result.pop();
39
- overlayRef.current = result?.at(-1);
40
- } else {
41
- overlayRef.current = null;
42
- }
43
- if (DEBUG) {
44
- prettyLog({
45
- context: 'layer',
46
- action: 'popOverlay',
47
- prev,
48
- result
49
- });
50
- }
51
- return result;
52
- });
53
- };
54
- let currentOverlay = null;
55
- if (overlays.length) {
56
- currentOverlay = modals.at(-1);
57
- }
58
- const clearOverlays = () => {
18
+ const enableOverlay = payload => {
59
19
  if (DEBUG) {
60
20
  prettyLog({
61
21
  context: 'layer',
62
- action: 'clearOverlays'
22
+ action: 'enableOverlay',
23
+ overlayPayload,
24
+ payload
63
25
  });
64
26
  }
65
- setOverlays([]);
27
+ setOverlayPayload(payload);
66
28
  };
67
- const pushModal = modal => {
68
- setModals(prev => {
69
- if (DEBUG) {
70
- prettyLog({
71
- context: 'layer',
72
- action: 'pushModal',
73
- prev,
74
- modal
75
- });
76
- }
77
- modalRef.current = modal;
78
- return [...prev, modal];
79
- });
29
+ const disableOverlay = () => {
30
+ if (DEBUG) {
31
+ prettyLog({
32
+ context: 'layer',
33
+ action: 'disableOverlay',
34
+ overlayPayload
35
+ });
36
+ }
37
+ setOverlayPayload(null);
80
38
  };
81
- const popModal = () => {
82
- setModals(prev => {
83
- let result = [...prev];
84
- if (result.length) {
85
- result.pop();
86
- modalRef.current = result?.at(-1);
87
- } else {
88
- modalRef.current = null;
89
- }
90
- if (DEBUG) {
91
- prettyLog({
92
- context: 'layer',
93
- action: 'popModal',
94
- prev,
95
- result
96
- });
97
- }
98
- return result;
99
- });
39
+ const showModal = payload => {
40
+ if (DEBUG) {
41
+ prettyLog({
42
+ context: 'layer',
43
+ action: 'showModal',
44
+ modalPayload,
45
+ payload
46
+ });
47
+ }
48
+ setModalPayload(payload);
100
49
  };
101
- const clearModals = () => {
102
- setModals([]);
50
+ const hideModal = () => {
51
+ if (DEBUG) {
52
+ prettyLog({
53
+ context: 'layer',
54
+ action: 'hideModal',
55
+ modalPayload
56
+ });
57
+ }
58
+ setModalPayload(null);
103
59
  };
104
60
  if (DEBUG === 'verbose') {
105
61
  prettyLog({
106
62
  context: 'layer',
107
63
  action: 'render',
108
- currentModal: modalRef?.current,
109
- currentOverlay: overlayRef?.current
64
+ modalPayload,
65
+ overlayPayload
110
66
  });
111
67
  }
112
68
  const context = {
113
69
  DEBUG_LAYERS: DEBUG,
114
- pushOverlay,
115
- pushModal,
116
- popModal,
117
- popOverlay,
118
- clearModals,
119
- clearOverlays,
120
- currentModal: modalRef?.current,
121
- currentOverlay: overlayRef?.current
70
+ enableOverlay,
71
+ disableOverlay,
72
+ overlayPayload,
73
+ showModal,
74
+ hideModal,
75
+ modalPayload
122
76
  };
123
77
  return /*#__PURE__*/_jsx(LayerContext.Provider, {
124
78
  style: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","prettyLog","jsx","_jsx","LayerContext","createContext","useLayerContext","value","useContext","Error","LayerContextProvider","props","modals","setModals","useState","overlays","setOverlays","modalRef","useRef","overlayRef","DEBUG","DEBUG_LAYERS","pushOverlay","overlay","prev","context","action","current","popOverlay","result","length","pop","at","currentOverlay","clearOverlays","pushModal","modal","popModal","clearModals","currentModal","Provider","style","flex","children"],"sourceRoot":"../../../src","sources":["context/snow-layer-context.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","prettyLog","jsx","_jsx","LayerContext","createContext","useLayerContext","value","useContext","Error","LayerContextProvider","props","modalPayload","setModalPayload","useState","overlayPayload","setOverlayPayload","DEBUG","DEBUG_LAYERS","enableOverlay","payload","context","action","disableOverlay","showModal","hideModal","Provider","style","flex","children"],"sourceRoot":"../../../src","sources":["context/snow-layer-context.js"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,YAAS;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEnC,MAAMC,YAAY,gBAAGJ,KAAK,CAACK,aAAa,CAAC,CAAC,CAAC,CAAC;AAE5C,OAAO,SAASC,eAAeA,CAAA,EAAG;EAC9B,IAAIC,KAAK,GAAGP,KAAK,CAACQ,UAAU,CAACJ,YAAY,CAAC;EAC1C,IAAI,CAACG,KAAK,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,+DAA+D,CAAC;EACpF;EACA,OAAOF,KAAK;AAChB;AAEA,OAAO,SAASG,oBAAoBA,CAACC,KAAK,EAAE;EACxC,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGb,KAAK,CAACc,QAAQ,CAAC,IAAI,CAAC;EAC5D,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGhB,KAAK,CAACc,QAAQ,CAAC,IAAI,CAAC;EAEhE,MAAMG,KAAK,GAAGN,KAAK,CAACO,YAAY;EAEhC,MAAMC,aAAa,GAAIC,OAAO,IAAK;IAC/B,IAAIH,KAAK,EAAE;MACPhB,SAAS,CAAC;QAAEoB,OAAO,EAAE,OAAO;QAAEC,MAAM,EAAE,eAAe;QAAEP,cAAc;QAAEK;MAAQ,CAAC,CAAC;IACrF;IACAJ,iBAAiB,CAACI,OAAO,CAAC;EAC9B,CAAC;EAED,MAAMG,cAAc,GAAGA,CAAA,KAAM;IACzB,IAAIN,KAAK,EAAE;MACPhB,SAAS,CAAC;QAAEoB,OAAO,EAAE,OAAO;QAAEC,MAAM,EAAE,gBAAgB;QAAEP;MAAe,CAAC,CAAC;IAC7E;IACAC,iBAAiB,CAAC,IAAI,CAAC;EAC3B,CAAC;EAED,MAAMQ,SAAS,GAAIJ,OAAO,IAAK;IAC3B,IAAIH,KAAK,EAAE;MACPhB,SAAS,CAAC;QAAEoB,OAAO,EAAE,OAAO;QAAEC,MAAM,EAAE,WAAW;QAAEV,YAAY;QAAEQ;MAAQ,CAAC,CAAC;IAC/E;IACAP,eAAe,CAACO,OAAO,CAAC;EAC5B,CAAC;EAED,MAAMK,SAAS,GAAGA,CAAA,KAAM;IACpB,IAAIR,KAAK,EAAE;MACPhB,SAAS,CAAC;QAAEoB,OAAO,EAAE,OAAO;QAAEC,MAAM,EAAE,WAAW;QAAEV;MAAa,CAAC,CAAC;IACtE;IACAC,eAAe,CAAC,IAAI,CAAC;EACzB,CAAC;EAED,IAAII,KAAK,KAAK,SAAS,EAAE;IACrBhB,SAAS,CAAC;MAAEoB,OAAO,EAAE,OAAO;MAAEC,MAAM,EAAE,QAAQ;MAAEV,YAAY;MAAEG;IAAe,CAAC,CAAC;EACnF;EAEA,MAAMM,OAAO,GAAG;IACZH,YAAY,EAAED,KAAK;IACnBE,aAAa;IACbI,cAAc;IACdR,cAAc;IACdS,SAAS;IACTC,SAAS;IACTb;EACJ,CAAC;EACD,oBACIT,IAAA,CAACC,YAAY,CAACsB,QAAQ;IAACC,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAE,CAAE;IAACrB,KAAK,EAAEc,OAAQ;IAAAQ,QAAA,EACrDlB,KAAK,CAACkB;EAAQ,CACI,CAAC;AAEhC;AAEA,eAAenB,oBAAoB","ignoreList":[]}
@@ -50,9 +50,9 @@ export function NavigationContextProvider(props) {
50
50
  isFocusedLayer
51
51
  } = useFocusContext();
52
52
  const {
53
- currentModal
53
+ modalRender
54
54
  } = useLayerContext();
55
- const currentModalRef = React.useRef();
55
+ const modalRenderRef = React.useRef();
56
56
  const [isReady, setIsReady] = React.useState(false);
57
57
  const [pageLookup, setPageLookup] = React.useState({});
58
58
  const [initialPath, setInitialPath] = React.useState(null);
@@ -71,8 +71,8 @@ export function NavigationContextProvider(props) {
71
71
  }
72
72
  }, [navigationHistory]);
73
73
  React.useEffect(() => {
74
- currentModalRef.current = currentModal;
75
- }, [currentModal]);
74
+ modalRenderRef.current = modalRender;
75
+ }, [modalRender]);
76
76
  React.useEffect(() => {
77
77
  let lookup = {};
78
78
  if (!props.routePaths) {
@@ -229,10 +229,10 @@ export function NavigationContextProvider(props) {
229
229
  prettyLog({
230
230
  context: 'navigation',
231
231
  action: 'backListener',
232
- modal: currentModalRef.current
232
+ modal: modalRenderRef.current
233
233
  });
234
234
  }
235
- if (currentModalRef.current) {
235
+ if (modalRenderRef.current) {
236
236
  // When a modal is shown, prevent default event handlers from exiting the app/page
237
237
  return true;
238
238
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","View","useFocusContext","useInputContext","useLayerContext","util","prettyLog","SnowText","jsx","_jsx","NavigationContext","createContext","useNavigationContext","value","useContext","Error","NavigationContextProvider","props","DEBUG","DEBUG_NAVIGATION","addBackListener","removeBackListener","pushFocusLayer","popFocusLayer","focusedLayer","isFocusedLayer","currentModal","currentModalRef","useRef","isReady","setIsReady","useState","pageLookup","setPageLookup","initialPath","setInitialPath","navigationHistory","setNavigationHistory","navigationHistoryRef","useEffect","current","at","routePath","layerName","pathKey","lookup","routePaths","console","log","Object","keys","initialRoutePath","routePages","pageKey","page","initialRoute","initialParams","OS","window","location","pathname","queryToObject","search","routeParams","navPush","isFunc","foundParams","foundPath","foundFunc","func","prev","result","params","history","replaceState","stateToUrl","push","pushState","context","action","navPop","length","pop","navReset","resetPath","resetRoutePath","modal","currentRoute","style","blankStyle","CurrentPage","Provider","flex","children"],"sourceRoot":"../../../src","sources":["context/snow-navigation-context.js"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","View","useFocusContext","useInputContext","useLayerContext","util","prettyLog","SnowText","jsx","_jsx","NavigationContext","createContext","useNavigationContext","value","useContext","Error","NavigationContextProvider","props","DEBUG","DEBUG_NAVIGATION","addBackListener","removeBackListener","pushFocusLayer","popFocusLayer","focusedLayer","isFocusedLayer","modalRender","modalRenderRef","useRef","isReady","setIsReady","useState","pageLookup","setPageLookup","initialPath","setInitialPath","navigationHistory","setNavigationHistory","navigationHistoryRef","useEffect","current","at","routePath","layerName","pathKey","lookup","routePaths","console","log","Object","keys","initialRoutePath","routePages","pageKey","page","initialRoute","initialParams","OS","window","location","pathname","queryToObject","search","routeParams","navPush","isFunc","foundParams","foundPath","foundFunc","func","prev","result","params","history","replaceState","stateToUrl","push","pushState","context","action","navPop","length","pop","navReset","resetPath","resetRoutePath","modal","currentRoute","style","blankStyle","CurrentPage","Provider","flex","children"],"sourceRoot":"../../../src","sources":["context/snow-navigation-context.js"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,10 @@ export { SnowApp } from "./snow-app.js";
5
5
  import { SnowApp } from "./snow-app.js";
6
6
  export { useFocusContext } from "./context/snow-focus-context.js";
7
7
  import { useFocusContext } from "./context/snow-focus-context.js";
8
+ export { useInputContext } from "./context/snow-input-context.js";
9
+ import { useInputContext } from "./context/snow-input-context.js";
10
+ export { useLayerContext } from "./context/snow-layer-context.js";
11
+ import { useLayerContext } from "./context/snow-layer-context.js";
8
12
  export { useNavigationContext } from "./context/snow-navigation-context.js";
9
13
  import { useNavigationContext } from "./context/snow-navigation-context.js";
10
14
  export { useSnowContext } from "./context/snow-context.js";
@@ -58,6 +62,8 @@ export * as util from "./util.js";
58
62
  export default {
59
63
  useFocusLayer,
60
64
  useFocusContext,
65
+ useInputContext,
66
+ useLayerContext,
61
67
  useNavigationContext,
62
68
  useSnowContext,
63
69
  useStyleContext,
@@ -1 +1 @@
1
- {"version":3,"names":["SnowApp","useFocusContext","useNavigationContext","useSnowContext","useStyleContext","SnowBreak","SnowDropdown","SnowFillView","SnowGrid","SnowHeader","SnowImageButton","SnowImageGrid","SnowInput","SnowLabel","SnowModal","SnowOverlay","SnowRangeSlider","SnowSafeArea","SnowTabs","SnowTarget","SnowTextButton","SnowText","SnowToggle","SnowView","useFocusLayerFunc","name","uncloned","useFocusLayer","util","App","Break","Dropdown","FillView","Grid","Header","ImageButton","ImageGrid","Input","Label","Modal","Overlay","RangeSlider","SafeArea","Tabs","Target","TextButton","Text","Toggle","View"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SnowApp","useFocusContext","useInputContext","useLayerContext","useNavigationContext","useSnowContext","useStyleContext","SnowBreak","SnowDropdown","SnowFillView","SnowGrid","SnowHeader","SnowImageButton","SnowImageGrid","SnowInput","SnowLabel","SnowModal","SnowOverlay","SnowRangeSlider","SnowSafeArea","SnowTabs","SnowTarget","SnowTextButton","SnowText","SnowToggle","SnowView","useFocusLayerFunc","name","uncloned","useFocusLayer","util","App","Break","Dropdown","FillView","Grid","Header","ImageButton","ImageGrid","Input","Label","Modal","Overlay","RangeSlider","SafeArea","Tabs","Target","TextButton","Text","Toggle","View"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,7 @@
1
1
  export { SnowApp } from './snow-app';
2
2
  export { useFocusContext } from './context/snow-focus-context';
3
+ export { useInputContext } from './context/snow-input-context';
4
+ export { useLayerContext } from './context/snow-layer-context';
3
5
  export { useNavigationContext } from './context/snow-navigation-context';
4
6
  export { useSnowContext } from './context/snow-context';
5
7
  export { useStyleContext } from './context/snow-style-context';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAG9D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAOtD,eAAO,MAAM,aAAa,SAJO,MAAM,aAAY,OAAO,QAIZ,CAAA;AAG9C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;;AAE9B,wBA2BC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAG9D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAEnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAOtD,eAAO,MAAM,aAAa,SAJO,MAAM,aAAY,OAAO,QAIZ,CAAA;AAG9C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAA;;AAE9B,wBA6BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-snowui",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "description": "GUI components and contexts shared by snowsuite apps",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -4,31 +4,50 @@ import { useStyleContext } from '../context/snow-style-context'
4
4
  import { useFocusContext } from '../context/snow-focus-context'
5
5
  import { useLayerContext } from '../context/snow-layer-context'
6
6
  import util from '../util'
7
+ import { SnowModal } from './wired/snow-modal'
8
+ import { SnowOverlay } from './wired/snow-overlay'
7
9
 
8
10
  export function SnowSafeArea(props) {
9
11
  const { SnowStyle } = useStyleContext(props)
10
- const { currentModal, currentOverlay } = useLayerContext()
12
+ const { modalPayload, overlayPayload, DEBUG_LAYERS } = useLayerContext()
11
13
  const { setScrollViewRef } = useFocusContext()
12
14
  const scrollViewRef = React.useRef(null)
13
15
 
16
+ // This allows modals and overlays to draw on top of the regular app
17
+ // Enabling things like fullscreen video
18
+ // It requires a rendering function instead of computed JSX
19
+ // Otherwise controlled forms inside a modal would not update their state
20
+ let modal = null
21
+ if (modalPayload) {
22
+ modal = <SnowModal {...modalPayload.props} render={modalPayload.render} />
23
+ }
24
+
25
+ let overlay = null
26
+ if (overlayPayload) {
27
+ overlay = <SnowOverlay {...overlayPayload.props} />
28
+ }
29
+
14
30
  React.useEffect(() => {
15
31
  if (scrollViewRef.current) {
16
32
  setScrollViewRef(scrollViewRef)
17
33
  }
18
34
  }, [scrollViewRef])
19
35
 
36
+ if (DEBUG_LAYERS) {
37
+ util.prettyLog({ component: 'safe-area', action: 'render', modalPayload, overlayPayload })
38
+ }
39
+
20
40
  return (
21
41
  <View style={util.blankStyle}>
22
42
  <ScrollView
23
43
  ref={scrollViewRef}
24
44
  style={SnowStyle.component.safeArea}
25
45
  snowStyle={SnowStyle}
26
- showsVerticalScrollIndicator={!currentModal}
27
- >
46
+ showsVerticalScrollIndicator={!modalPayload} >
28
47
  {props.children}
29
48
  </ScrollView>
30
- {currentModal}
31
- {currentOverlay}
49
+ {modal}
50
+ {overlay}
32
51
  </View>
33
52
  )
34
53
  }
@@ -2,8 +2,6 @@ import React from 'react'
2
2
  import { View } from 'react-native'
3
3
  import { useFocusContext } from '../../context/snow-focus-context'
4
4
  import { useInputContext } from '../../context/snow-input-context'
5
- import { useLayerContext } from '../../context/snow-layer-context'
6
- import { useNavigationContext } from '../../context/snow-navigation-context'
7
5
  import { useStyleContext } from '../../context/snow-style-context'
8
6
 
9
7
  import SnowFillView from '../snow-fill-view'
@@ -13,7 +11,6 @@ const SnowModalW = (props) => {
13
11
  const { SnowStyle } = useStyleContext(props)
14
12
  const { addBackListener, removeBackListener } = useInputContext()
15
13
  const { pushFocusLayer, popFocusLayer } = useFocusContext(props)
16
- const { pushModal, popModal } = useLayerContext(props)
17
14
 
18
15
  if (!props.onRequestClose) {
19
16
  return <SnowText>SnowModal requires an onRequestClose prop</SnowText>
@@ -23,16 +20,26 @@ const SnowModalW = (props) => {
23
20
  if (!props.focusLayer) {
24
21
  return <SnowText>SnowModal requires a focusLayer prop</SnowText>
25
22
  }
26
- else {
27
- React.useEffect(() => {
28
- pushFocusLayer(`snow-modal-${props.focusLayer}`, true)
29
- return () => {
30
- popFocusLayer()
31
- }
32
- }, [])
33
- }
34
23
  }
35
24
 
25
+ React.useEffect(() => {
26
+ if (props.assignFocus && props.focusLayer) {
27
+ pushFocusLayer(`snow-modal-${props.focusLayer}`, true)
28
+ return () => {
29
+ popFocusLayer()
30
+ }
31
+ }
32
+ }, [])
33
+
34
+ React.useEffect(() => {
35
+ const backListenerKey = addBackListener(() => {
36
+ props.onRequestClose()
37
+ return true
38
+ })
39
+ return () => {
40
+ removeBackListener(backListenerKey)
41
+ }
42
+ }, [])
36
43
 
37
44
  let style = [SnowStyle.component.modal.prompt]
38
45
  if (props.transparent) {
@@ -44,15 +51,17 @@ const SnowModalW = (props) => {
44
51
  if (props.contentStyle) {
45
52
  style.push(props.contentStyle)
46
53
  }
47
- let modalView = null
54
+ let modalContent = null
48
55
  if (props.wrapper === false) {
49
- modalView = (
56
+ modalContent = (
50
57
  <View
51
58
  navigationBarTranslucent
52
59
  statusBarTranslucent
53
60
  transparent={props.transparent}
54
61
  style={style}
55
- children={props.children} />
62
+ >
63
+ {props.render()}
64
+ </View>
56
65
  )
57
66
  } else {
58
67
  let modalStyle = [
@@ -63,38 +72,23 @@ const SnowModalW = (props) => {
63
72
  modalStyle.push(props.modalStyle)
64
73
  }
65
74
 
66
- let modalContent = (
67
- <SnowFillView
68
- scroll={props.scroll}
69
- children={props.children}
70
- style={style} />
71
- )
72
-
73
- modalView = (
74
- <View
75
- style={modalStyle}
76
- navigationBarTranslucent
77
- statusBarTranslucent
78
- transparent={props.transparent}
79
- >
80
- {modalContent}
81
- </View>
82
- )
83
- }
84
- if (modalView) {
85
- React.useEffect(() => {
86
- pushModal(modalView)
87
- const backListenerKey = addBackListener(() => {
88
- props.onRequestClose()
89
- return true
90
- })
91
- return () => {
92
- removeBackListener(backListenerKey)
93
- popModal()
94
- }
95
- }, [])
75
+ modalContent =
76
+ (
77
+ <View
78
+ style={modalStyle}
79
+ navigationBarTranslucent
80
+ statusBarTranslucent
81
+ transparent={props.transparent}
82
+ >
83
+ <SnowFillView
84
+ scroll={props.scroll}
85
+ style={style}>
86
+ {props.render()}
87
+ </SnowFillView>
88
+ </View>
89
+ )
96
90
  }
97
- return null
91
+ return modalContent
98
92
  }
99
93
 
100
94
  SnowModalW.isSnowFocusWired = true
@@ -4,6 +4,7 @@ import { useStyleContext } from '../../context/snow-style-context'
4
4
  import { useFocusContext } from '../../context/snow-focus-context'
5
5
  import { useLayerContext } from '../../context/snow-layer-context'
6
6
  import SnowText from '../snow-text'
7
+ import SnowFillView from '../snow-fill-view'
7
8
 
8
9
  const SnowOverlayW = (props) => {
9
10
  const { SnowStyle } = useStyleContext(props)
@@ -14,9 +15,9 @@ const SnowOverlayW = (props) => {
14
15
  pushFocusLayer,
15
16
  popFocusLayer,
16
17
  focusedLayer,
17
- addFocusMap
18
+ addFocusMap,
19
+ readFocusProps
18
20
  } = useFocusContext()
19
- const { pushOverlay, popOverlay } = useLayerContext(props)
20
21
 
21
22
  if (!props.focusLayer) {
22
23
  return <SnowText>SnowOverlay requires a focusLayer prop</SnowText>
@@ -51,9 +52,6 @@ const SnowOverlayW = (props) => {
51
52
  isReady
52
53
  ]);
53
54
 
54
-
55
-
56
-
57
55
  let style = [SnowStyle.component.overlay.touchable]
58
56
  if (props.transparent) {
59
57
  style.push(SnowStyle.component.overlay.transparent)
@@ -62,26 +60,18 @@ const SnowOverlayW = (props) => {
62
60
  style.push(SnowStyle.component.overlay.black)
63
61
  }
64
62
 
65
- const overlayView = (
63
+ return (
66
64
  <TouchableOpacity
67
65
  ref={elementRef}
68
66
  {...tvRemoteProps}
67
+ {...readFocusProps(props)}
69
68
  style={style}
70
69
  activeOpacity={1} // Without this, the overlay applies a white filter to anything underneath
71
70
  onPress={focusPress(elementRef, props.focusKey)}
72
- onLongPress={focusLongPress(elementRef, props.focusKey)}
73
- children={props.children}
74
- />
71
+ onLongPress={focusLongPress(elementRef, props.focusKey)}>
72
+ <SnowFillView></SnowFillView>
73
+ </TouchableOpacity>
75
74
  )
76
-
77
- React.useEffect(() => {
78
- pushOverlay(overlayView)
79
- return () => {
80
- popOverlay()
81
- }
82
- }, [])
83
-
84
- return null
85
75
  }
86
76
 
87
77
  SnowOverlayW.isSnowFocusWired = true
@@ -13,96 +13,51 @@ export function useLayerContext() {
13
13
  }
14
14
 
15
15
  export function LayerContextProvider(props) {
16
- const [modals, setModals] = React.useState([])
17
- const [overlays, setOverlays] = React.useState([])
18
- const modalRef = React.useRef(null)
19
- const overlayRef = React.useRef(null)
16
+ const [modalPayload, setModalPayload] = React.useState(null)
17
+ const [overlayPayload, setOverlayPayload] = React.useState(null)
20
18
 
21
19
  const DEBUG = props.DEBUG_LAYERS
22
20
 
23
- const pushOverlay = (overlay) => {
24
- setOverlays((prev) => {
25
- if (DEBUG) {
26
- prettyLog({ context: 'layer', action: 'pushOverlay', prev, overlay })
27
- }
28
- overlayRef.current = overlay
29
- return [...prev, overlay]
30
- })
31
- }
32
-
33
- const popOverlay = () => {
34
- setOverlays((prev) => {
35
- let result = [...prev]
36
- if (result.length) {
37
- result.pop()
38
- overlayRef.current = result?.at(-1)
39
- } else {
40
- overlayRef.current = null
41
- }
42
- if (DEBUG) {
43
- prettyLog({ context: 'layer', action: 'popOverlay', prev, result })
44
- }
45
- return result
46
- })
47
- }
48
-
49
- let currentOverlay = null
50
- if (overlays.length) {
51
- currentOverlay = modals.at(-1)
52
- }
53
-
54
- const clearOverlays = () => {
21
+ const enableOverlay = (payload) => {
55
22
  if (DEBUG) {
56
- prettyLog({ context: 'layer', action: 'clearOverlays' })
23
+ prettyLog({ context: 'layer', action: 'enableOverlay', overlayPayload, payload })
57
24
  }
58
- setOverlays([])
25
+ setOverlayPayload(payload)
59
26
  }
60
27
 
61
- const pushModal = (modal) => {
62
- setModals((prev) => {
63
- if (DEBUG) {
64
- prettyLog({ context: 'layer', action: 'pushModal', prev, modal })
65
- }
66
- modalRef.current = modal
67
- return [...prev, modal]
68
- })
28
+ const disableOverlay = () => {
29
+ if (DEBUG) {
30
+ prettyLog({ context: 'layer', action: 'disableOverlay', overlayPayload })
31
+ }
32
+ setOverlayPayload(null)
69
33
  }
70
34
 
71
- const popModal = () => {
72
- setModals((prev) => {
73
- let result = [...prev]
74
- if (result.length) {
75
- result.pop()
76
- modalRef.current = result?.at(-1)
77
- } else {
78
- modalRef.current = null
79
- }
80
- if (DEBUG) {
81
- prettyLog({ context: 'layer', action: 'popModal', prev, result })
82
- }
83
- return result
84
- })
35
+ const showModal = (payload) => {
36
+ if (DEBUG) {
37
+ prettyLog({ context: 'layer', action: 'showModal', modalPayload, payload })
38
+ }
39
+ setModalPayload(payload)
85
40
  }
86
41
 
87
- const clearModals = () => {
88
- setModals([])
42
+ const hideModal = () => {
43
+ if (DEBUG) {
44
+ prettyLog({ context: 'layer', action: 'hideModal', modalPayload })
45
+ }
46
+ setModalPayload(null)
89
47
  }
90
48
 
91
49
  if (DEBUG === 'verbose') {
92
- prettyLog({ context: 'layer', action: 'render', currentModal: modalRef?.current, currentOverlay: overlayRef?.current })
50
+ prettyLog({ context: 'layer', action: 'render', modalPayload, overlayPayload })
93
51
  }
94
52
 
95
-
96
53
  const context = {
97
54
  DEBUG_LAYERS: DEBUG,
98
- pushOverlay,
99
- pushModal,
100
- popModal,
101
- popOverlay,
102
- clearModals,
103
- clearOverlays,
104
- currentModal: modalRef?.current,
105
- currentOverlay: overlayRef?.current
55
+ enableOverlay,
56
+ disableOverlay,
57
+ overlayPayload,
58
+ showModal,
59
+ hideModal,
60
+ modalPayload,
106
61
  }
107
62
  return (
108
63
  <LayerContext.Provider style={{ flex: 1 }} value={context}>
@@ -45,9 +45,9 @@ export function NavigationContextProvider(props) {
45
45
 
46
46
  const { addBackListener, removeBackListener } = useInputContext()
47
47
  const { pushFocusLayer, popFocusLayer, focusedLayer, isFocusedLayer } = useFocusContext()
48
- const { currentModal } = useLayerContext()
48
+ const { modalRender } = useLayerContext()
49
49
 
50
- const currentModalRef = React.useRef()
50
+ const modalRenderRef = React.useRef()
51
51
 
52
52
  const [isReady, setIsReady] = React.useState(false)
53
53
 
@@ -71,8 +71,8 @@ export function NavigationContextProvider(props) {
71
71
  }, [navigationHistory])
72
72
 
73
73
  React.useEffect(() => {
74
- currentModalRef.current = currentModal
75
- }, [currentModal])
74
+ modalRenderRef.current = modalRender
75
+ }, [modalRender])
76
76
 
77
77
  React.useEffect(() => {
78
78
  let lookup = {}
@@ -202,9 +202,9 @@ export function NavigationContextProvider(props) {
202
202
  React.useEffect(() => {
203
203
  addBackListener('navigation-context', () => {
204
204
  if (DEBUG) {
205
- prettyLog({ context: 'navigation', action: 'backListener', modal: currentModalRef.current })
205
+ prettyLog({ context: 'navigation', action: 'backListener', modal: modalRenderRef.current })
206
206
  }
207
- if (currentModalRef.current) {
207
+ if (modalRenderRef.current) {
208
208
  // When a modal is shown, prevent default event handlers from exiting the app/page
209
209
  return true
210
210
  }
package/src/index.tsx CHANGED
@@ -4,6 +4,10 @@ import { SnowApp } from './snow-app'
4
4
 
5
5
  export { useFocusContext } from './context/snow-focus-context'
6
6
  import { useFocusContext } from './context/snow-focus-context'
7
+ export { useInputContext } from './context/snow-input-context'
8
+ import { useInputContext } from './context/snow-input-context'
9
+ export { useLayerContext } from './context/snow-layer-context'
10
+ import { useLayerContext } from './context/snow-layer-context'
7
11
  export { useNavigationContext } from './context/snow-navigation-context'
8
12
  import { useNavigationContext } from './context/snow-navigation-context'
9
13
  export { useSnowContext } from './context/snow-context'
@@ -62,6 +66,8 @@ export * as util from './util'
62
66
  export default {
63
67
  useFocusLayer,
64
68
  useFocusContext,
69
+ useInputContext,
70
+ useLayerContext,
65
71
  useNavigationContext,
66
72
  useSnowContext,
67
73
  useStyleContext,