@magmamath/students-features 0.9.4-rc.0 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,7 +44,8 @@ const Keyboard = ({
44
44
  }]
45
45
  }],
46
46
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_MainLayout.MainLayout, {
47
- ...props
47
+ ...props,
48
+ characterType: characterType
48
49
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Numpad.Numpad, {
49
50
  ...props,
50
51
  style: mobileStyles
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeUi","_Numpad","_constants","_constants2","_MainLayout","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Keyboard","style","characterType","isVisible","props","slideAnim","useRef","Animated","Value","KEYBOARD_SLIDE_DISTANCE","current","width","useWindowDimensions","isMobile","MOBILE_LAYOUT_WIDTH","IS_MOBILE","mobileStyles","useMemo","getLayoutConfigStyles","useEffect","animationConfig","slideOutAnimationSettings","slideInAnimationSettings","anim","spring","mass","velocity","useNativeDriver","start","stop","jsxs","View","styles","container","transform","translateY","children","jsx","MainLayout","Numpad","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","backgroundColor","COLORS","NEUTRAL_2","borderRadius","paddingTop","paddingHorizontal","paddingBottom","borderColor","NEUTRAL_5","borderWidth","height","SHADOWS"],"sourceRoot":"../../../../../src","sources":["features/keyboard/components/Keyboard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeUi","_Numpad","_constants","_constants2","_MainLayout","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Keyboard","style","characterType","isVisible","props","slideAnim","useRef","Animated","Value","KEYBOARD_SLIDE_DISTANCE","current","width","useWindowDimensions","isMobile","MOBILE_LAYOUT_WIDTH","IS_MOBILE","mobileStyles","useMemo","getLayoutConfigStyles","useEffect","animationConfig","slideOutAnimationSettings","slideInAnimationSettings","anim","spring","mass","velocity","useNativeDriver","start","stop","jsxs","View","styles","container","transform","translateY","children","jsx","MainLayout","Numpad","exports","StyleSheet","create","flexDirection","alignItems","justifyContent","backgroundColor","COLORS","NEUTRAL_2","borderRadius","paddingTop","paddingHorizontal","paddingBottom","borderColor","NEUTRAL_5","borderWidth","height","SHADOWS"],"sourceRoot":"../../../../../src","sources":["features/keyboard/components/Keyboard.tsx"],"mappings":"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","ignoreList":[]}
@@ -14,9 +14,8 @@ var _jsxRuntime = require("react/jsx-runtime");
14
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
16
  const MainLayout = ({
17
- style,
18
17
  characterType,
19
- showUnderlinedKeys,
18
+ showUnderlinedKeys = false,
20
19
  ...props
21
20
  }) => {
22
21
  const [isUnderlinedVisible, setIsUnderlinedVisible] = (0, _react.useState)(showUnderlinedKeys);
@@ -28,33 +27,33 @@ const MainLayout = ({
28
27
  } = (0, _reactNative.useWindowDimensions)();
29
28
  const isMobile = width <= _constants.MOBILE_LAYOUT_WIDTH || _reactNativeUi.IS_MOBILE;
30
29
  const Layout = (0, _react.useMemo)(() => (0, _keyboardLayouts.getLayoutByCharType)(characterType), [characterType]);
30
+ const isUnderlinedLayoutVisible = isUnderlinedVisible && !isSecondaryLayoutSelected && !isMobile;
31
+ const animateFade = (0, _react.useCallback)((toValue, onComplete) => {
32
+ fadeRef.current?.stop();
33
+ fadeRef.current = _reactNative.Animated.timing(fadeAnim, {
34
+ toValue,
35
+ duration: 250,
36
+ useNativeDriver: !_reactNativeUi.IS_WEB
37
+ });
38
+ fadeRef.current.start(() => onComplete?.());
39
+ }, [fadeAnim]);
31
40
  (0, _react.useEffect)(() => {
32
41
  if (showUnderlinedKeys) {
33
42
  setIsUnderlinedVisible(true);
34
- fadeRef.current = _reactNative.Animated.timing(fadeAnim, {
35
- toValue: 1,
36
- duration: 250,
37
- useNativeDriver: true
38
- });
39
- fadeRef.current.start();
43
+ animateFade(1);
40
44
  return;
41
45
  }
42
- fadeRef.current = _reactNative.Animated.timing(fadeAnim, {
43
- toValue: 0,
44
- duration: 250,
45
- useNativeDriver: true
46
- });
47
- fadeRef.current.start(() => setIsUnderlinedVisible(false));
46
+ animateFade(0, () => setIsUnderlinedVisible(false));
48
47
  return () => {
49
48
  fadeRef.current?.stop();
50
49
  };
51
- }, [showUnderlinedKeys]);
50
+ }, [showUnderlinedKeys, animateFade]);
52
51
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
53
52
  style: styles.container,
54
53
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, {
55
54
  ...props,
56
55
  onLayoutChange: setIsSecondaryLayoutSelected
57
- }), isUnderlinedVisible && !isSecondaryLayoutSelected && !isMobile && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
56
+ }), isUnderlinedLayoutVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
58
57
  style: {
59
58
  opacity: fadeAnim
60
59
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeUi","_keyboardLayouts","_UnderlinedLayout","_constants","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MainLayout","style","characterType","showUnderlinedKeys","props","isUnderlinedVisible","setIsUnderlinedVisible","useState","isSecondaryLayoutSelected","setIsSecondaryLayoutSelected","fadeAnim","useRef","Animated","Value","current","fadeRef","width","useWindowDimensions","isMobile","MOBILE_LAYOUT_WIDTH","IS_MOBILE","Layout","useMemo","getLayoutByCharType","useEffect","timing","toValue","duration","useNativeDriver","start","stop","jsxs","View","styles","container","children","jsx","onLayoutChange","opacity","UnderlinedLayout","exports","StyleSheet","create","flexDirection","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["features/keyboard/components/MainLayout.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAEA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAA4D,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAarD,MAAMW,UAAU,GAAGA,CAAC;EAAEC,KAAK;EAAEC,aAAa;EAAEC,kBAAkB;EAAE,GAAGC;AAAmB,CAAC,KAAK;EACjG,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG,IAAAC,eAAQ,EAACJ,kBAAkB,CAAC;EAClF,MAAM,CAACK,yBAAyB,EAAEC,4BAA4B,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAEjF,MAAMG,QAAQ,GAAG,IAAAC,aAAM,EAAC,IAAIC,qBAAQ,CAACC,KAAK,CAACV,kBAAkB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAACW,OAAO;EAC/E,MAAMC,OAAO,GAAG,IAAAJ,aAAM,EAAqC,IAAI,CAAC;EAChE,MAAM;IAAEK;EAAM,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EACvC,MAAMC,QAAQ,GAAGF,KAAK,IAAIG,8BAAmB,IAAIC,wBAAS;EAE1D,MAAMC,MAAM,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,oCAAmB,EAACrB,aAAa,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAEjF,IAAAsB,gBAAS,EAAC,MAAM;IACd,IAAIrB,kBAAkB,EAAE;MACtBG,sBAAsB,CAAC,IAAI,CAAC;MAC5BS,OAAO,CAACD,OAAO,GAAGF,qBAAQ,CAACa,MAAM,CAACf,QAAQ,EAAE;QAC1CgB,OAAO,EAAE,CAAC;QACVC,QAAQ,EAAE,GAAG;QACbC,eAAe,EAAE;MACnB,CAAC,CAAC;MACFb,OAAO,CAACD,OAAO,CAACe,KAAK,CAAC,CAAC;MACvB;IACF;IACAd,OAAO,CAACD,OAAO,GAAGF,qBAAQ,CAACa,MAAM,CAACf,QAAQ,EAAE;MAC1CgB,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAE,GAAG;MACbC,eAAe,EAAE;IACnB,CAAC,CAAC;IACFb,OAAO,CAACD,OAAO,CAACe,KAAK,CAAC,MAAMvB,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE1D,OAAO,MAAM;MACXS,OAAO,CAACD,OAAO,EAAEgB,IAAI,CAAC,CAAC;IACzB,CAAC;EACH,CAAC,EAAE,CAAC3B,kBAAkB,CAAC,CAAC;EAExB,oBACE,IAAAxB,WAAA,CAAAoD,IAAA,EAACzD,YAAA,CAAA0D,IAAI;IAAC/B,KAAK,EAAEgC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5B,IAAAxD,WAAA,CAAAyD,GAAA,EAACf,MAAM;MAAA,GAAKjB,KAAK;MAAEiC,cAAc,EAAE5B;IAA6B,CAAE,CAAC,EAClEJ,mBAAmB,IAAI,CAACG,yBAAyB,IAAI,CAACU,QAAQ,iBAC7D,IAAAvC,WAAA,CAAAyD,GAAA,EAAC9D,YAAA,CAAAsC,QAAQ,CAACoB,IAAI;MAAC/B,KAAK,EAAE;QAAEqC,OAAO,EAAE5B;MAAS,CAAE;MAAAyB,QAAA,eAC1C,IAAAxD,WAAA,CAAAyD,GAAA,EAAC3D,iBAAA,CAAA8D,gBAAgB;QAAA,GAAKnC;MAAK,CAAG;IAAC,CAClB,CAChB;EAAA,CACG,CAAC;AAEX,CAAC;AAAAoC,OAAA,CAAAxC,UAAA,GAAAA,UAAA;AAED,MAAMiC,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/BR,SAAS,EAAE;IACTS,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,YAAY;IACxBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeUi","_keyboardLayouts","_UnderlinedLayout","_constants","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MainLayout","characterType","showUnderlinedKeys","props","isUnderlinedVisible","setIsUnderlinedVisible","useState","isSecondaryLayoutSelected","setIsSecondaryLayoutSelected","fadeAnim","useRef","Animated","Value","current","fadeRef","width","useWindowDimensions","isMobile","MOBILE_LAYOUT_WIDTH","IS_MOBILE","Layout","useMemo","getLayoutByCharType","isUnderlinedLayoutVisible","animateFade","useCallback","toValue","onComplete","stop","timing","duration","useNativeDriver","IS_WEB","start","useEffect","jsxs","View","style","styles","container","children","jsx","onLayoutChange","opacity","UnderlinedLayout","exports","StyleSheet","create","flexDirection","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["features/keyboard/components/MainLayout.tsx"],"mappings":"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","ignoreList":[]}
@@ -38,7 +38,8 @@ export const Keyboard = ({
38
38
  }]
39
39
  }],
40
40
  children: [/*#__PURE__*/_jsx(MainLayout, {
41
- ...props
41
+ ...props,
42
+ characterType: characterType
42
43
  }), /*#__PURE__*/_jsx(Numpad, {
43
44
  ...props,
44
45
  style: mobileStyles
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useRef","Animated","StyleSheet","useWindowDimensions","COLORS","IS_MOBILE","SHADOWS","Numpad","MOBILE_LAYOUT_WIDTH","getLayoutConfigStyles","KEYBOARD_SLIDE_DISTANCE","slideInAnimationSettings","slideOutAnimationSettings","MainLayout","jsx","_jsx","jsxs","_jsxs","Keyboard","style","characterType","isVisible","props","slideAnim","Value","current","width","isMobile","mobileStyles","animationConfig","anim","spring","mass","velocity","useNativeDriver","start","stop","View","styles","container","transform","translateY","children","create","flexDirection","alignItems","justifyContent","backgroundColor","NEUTRAL_2","borderRadius","paddingTop","paddingHorizontal","paddingBottom","borderColor","NEUTRAL_5","borderWidth","height"],"sourceRoot":"../../../../../src","sources":["features/keyboard/components/Keyboard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACzD,SAASC,QAAQ,EAAaC,UAAU,EAAEC,mBAAmB,QAAmB,cAAc;AAC9F,SAASC,MAAM,EAAEC,SAAS,EAAqBC,OAAO,QAAQ,4BAA4B;AAE1F,SAASC,MAAM,QAAQ,oBAAiB;AACxC,SAASC,mBAAmB,QAAQ,2BAAwB;AAC5D,SACEC,qBAAqB,EACrBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,QACpB,gBAAa;AACpB,SAASC,UAAU,QAAQ,iBAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAazC,OAAO,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,KAAK;EAAEC,aAAa;EAAEC,SAAS,GAAG,IAAI;EAAE,GAAGC;AAAqB,CAAC,KAAK;EAC/F,MAAMC,SAAS,GAAGvB,MAAM,CAAC,IAAIC,QAAQ,CAACuB,KAAK,CAACH,SAAS,GAAG,CAAC,GAAGX,uBAAuB,CAAC,CAAC,CAACe,OAAO;EAE7F,MAAM;IAAEC;EAAM,CAAC,GAAGvB,mBAAmB,CAAC,CAAC;EACvC,MAAMwB,QAAQ,GAAGD,KAAK,IAAIlB,mBAAmB,IAAIH,SAAS;EAC1D,MAAMuB,YAAY,GAAG7B,OAAO,CAC1B,MAAMU,qBAAqB,CAACW,aAAa,EAAEO,QAAQ,CAAC,EACpD,CAACP,aAAa,EAAEO,QAAQ,CAC1B,CAAC;EAED7B,SAAS,CAAC,MAAM;IACd,MAAM+B,eAAe,GAAGR,SAAS,GAAGT,yBAAyB,GAAGD,wBAAwB;IACxF,MAAMmB,IAAI,GAAG7B,QAAQ,CAAC8B,MAAM,CAACR,SAAS,EAAE;MACtC,GAAGM,eAAe;MAClBG,IAAI,EAAE,CAAC;MACPC,QAAQ,EAAE,CAAC;MACXC,eAAe,EAAE;IACnB,CAAC,CAAC;IAEFJ,IAAI,CAACK,KAAK,CAAC,CAAC;IAEZ,OAAO,MAAML,IAAI,CAACM,IAAI,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACf,SAAS,CAAC,CAAC;EAEf,oBACEJ,KAAA,CAAChB,QAAQ,CAACoC,IAAI;IACZlB,KAAK,EAAE,CACLmB,MAAM,CAACC,SAAS,EAChBpB,KAAK,EACL;MACEqB,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAElB;MAAU,CAAC;IACvC,CAAC,CACD;IAAAmB,QAAA,gBAEF3B,IAAA,CAACF,UAAU;MAAA,GAAKS;IAAK,CAAG,CAAC,eACzBP,IAAA,CAACR,MAAM;MAAA,GAAKe,KAAK;MAAEH,KAAK,EAAES;IAAa,CAAE,CAAC;EAAA,CAC7B,CAAC;AAEpB,CAAC;AAED,MAAMU,MAAM,GAAGpC,UAAU,CAACyC,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IACTK,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,YAAY;IACxBC,cAAc,EAAE,eAAe;IAC/BC,eAAe,EAAE3C,MAAM,CAAC4C,SAAS;IACjCC,YAAY,EAAE,EAAE;IAChBC,UAAU,EAAE,CAAC;IACbC,iBAAiB,EAAE,EAAE;IACrBC,aAAa,EAAE,EAAE;IACjBC,WAAW,EAAEjD,MAAM,CAACkD,SAAS;IAC7BC,WAAW,EAAE,CAAC;IACd7B,KAAK,EAAE,MAAM;IACb8B,MAAM,EAAE,GAAG;IACX,GAAGlD,OAAO,CAAC,CAAC;EACd;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","Animated","StyleSheet","useWindowDimensions","COLORS","IS_MOBILE","SHADOWS","Numpad","MOBILE_LAYOUT_WIDTH","getLayoutConfigStyles","KEYBOARD_SLIDE_DISTANCE","slideInAnimationSettings","slideOutAnimationSettings","MainLayout","jsx","_jsx","jsxs","_jsxs","Keyboard","style","characterType","isVisible","props","slideAnim","Value","current","width","isMobile","mobileStyles","animationConfig","anim","spring","mass","velocity","useNativeDriver","start","stop","View","styles","container","transform","translateY","children","create","flexDirection","alignItems","justifyContent","backgroundColor","NEUTRAL_2","borderRadius","paddingTop","paddingHorizontal","paddingBottom","borderColor","NEUTRAL_5","borderWidth","height"],"sourceRoot":"../../../../../src","sources":["features/keyboard/components/Keyboard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACzD,SAASC,QAAQ,EAAaC,UAAU,EAAEC,mBAAmB,QAAmB,cAAc;AAC9F,SAASC,MAAM,EAAEC,SAAS,EAAqBC,OAAO,QAAQ,4BAA4B;AAE1F,SAASC,MAAM,QAAQ,oBAAiB;AACxC,SAASC,mBAAmB,QAAQ,2BAAwB;AAC5D,SACEC,qBAAqB,EACrBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,QACpB,gBAAa;AACpB,SAASC,UAAU,QAAQ,iBAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAazC,OAAO,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,KAAK;EAAEC,aAAa;EAAEC,SAAS,GAAG,IAAI;EAAE,GAAGC;AAAqB,CAAC,KAAK;EAC/F,MAAMC,SAAS,GAAGvB,MAAM,CAAC,IAAIC,QAAQ,CAACuB,KAAK,CAACH,SAAS,GAAG,CAAC,GAAGX,uBAAuB,CAAC,CAAC,CAACe,OAAO;EAE7F,MAAM;IAAEC;EAAM,CAAC,GAAGvB,mBAAmB,CAAC,CAAC;EACvC,MAAMwB,QAAQ,GAAGD,KAAK,IAAIlB,mBAAmB,IAAIH,SAAS;EAC1D,MAAMuB,YAAY,GAAG7B,OAAO,CAC1B,MAAMU,qBAAqB,CAACW,aAAa,EAAEO,QAAQ,CAAC,EACpD,CAACP,aAAa,EAAEO,QAAQ,CAC1B,CAAC;EAED7B,SAAS,CAAC,MAAM;IACd,MAAM+B,eAAe,GAAGR,SAAS,GAAGT,yBAAyB,GAAGD,wBAAwB;IACxF,MAAMmB,IAAI,GAAG7B,QAAQ,CAAC8B,MAAM,CAACR,SAAS,EAAE;MACtC,GAAGM,eAAe;MAClBG,IAAI,EAAE,CAAC;MACPC,QAAQ,EAAE,CAAC;MACXC,eAAe,EAAE;IACnB,CAAC,CAAC;IAEFJ,IAAI,CAACK,KAAK,CAAC,CAAC;IAEZ,OAAO,MAAML,IAAI,CAACM,IAAI,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACf,SAAS,CAAC,CAAC;EAEf,oBACEJ,KAAA,CAAChB,QAAQ,CAACoC,IAAI;IACZlB,KAAK,EAAE,CACLmB,MAAM,CAACC,SAAS,EAChBpB,KAAK,EACL;MACEqB,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAElB;MAAU,CAAC;IACvC,CAAC,CACD;IAAAmB,QAAA,gBAEF3B,IAAA,CAACF,UAAU;MAAA,GAAKS,KAAK;MAAEF,aAAa,EAAEA;IAAc,CAAE,CAAC,eACvDL,IAAA,CAACR,MAAM;MAAA,GAAKe,KAAK;MAAEH,KAAK,EAAES;IAAa,CAAE,CAAC;EAAA,CAC7B,CAAC;AAEpB,CAAC;AAED,MAAMU,MAAM,GAAGpC,UAAU,CAACyC,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IACTK,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,YAAY;IACxBC,cAAc,EAAE,eAAe;IAC/BC,eAAe,EAAE3C,MAAM,CAAC4C,SAAS;IACjCC,YAAY,EAAE,EAAE;IAChBC,UAAU,EAAE,CAAC;IACbC,iBAAiB,EAAE,EAAE;IACrBC,aAAa,EAAE,EAAE;IACjBC,WAAW,EAAEjD,MAAM,CAACkD,SAAS;IAC7BC,WAAW,EAAE,CAAC;IACd7B,KAAK,EAAE,MAAM;IACb8B,MAAM,EAAE,GAAG;IACX,GAAGlD,OAAO,CAAC,CAAC;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,16 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useMemo, useRef, useState } from 'react';
3
+ import React, { useEffect, useMemo, useRef, useState, useCallback } from 'react';
4
4
  import { Animated, StyleSheet, useWindowDimensions, View } from 'react-native';
5
- import { IS_MOBILE } from '@magmamath/react-native-ui';
5
+ import { IS_MOBILE, IS_WEB } from '@magmamath/react-native-ui';
6
6
  import { getLayoutByCharType } from "../constants/keyboardLayouts.js";
7
7
  import { UnderlinedLayout } from "./UnderlinedLayout/UnderlinedLayout.js";
8
8
  import { MOBILE_LAYOUT_WIDTH } from "../constants/constants.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  export const MainLayout = ({
11
- style,
12
11
  characterType,
13
- showUnderlinedKeys,
12
+ showUnderlinedKeys = false,
14
13
  ...props
15
14
  }) => {
16
15
  const [isUnderlinedVisible, setIsUnderlinedVisible] = useState(showUnderlinedKeys);
@@ -22,33 +21,33 @@ export const MainLayout = ({
22
21
  } = useWindowDimensions();
23
22
  const isMobile = width <= MOBILE_LAYOUT_WIDTH || IS_MOBILE;
24
23
  const Layout = useMemo(() => getLayoutByCharType(characterType), [characterType]);
24
+ const isUnderlinedLayoutVisible = isUnderlinedVisible && !isSecondaryLayoutSelected && !isMobile;
25
+ const animateFade = useCallback((toValue, onComplete) => {
26
+ fadeRef.current?.stop();
27
+ fadeRef.current = Animated.timing(fadeAnim, {
28
+ toValue,
29
+ duration: 250,
30
+ useNativeDriver: !IS_WEB
31
+ });
32
+ fadeRef.current.start(() => onComplete?.());
33
+ }, [fadeAnim]);
25
34
  useEffect(() => {
26
35
  if (showUnderlinedKeys) {
27
36
  setIsUnderlinedVisible(true);
28
- fadeRef.current = Animated.timing(fadeAnim, {
29
- toValue: 1,
30
- duration: 250,
31
- useNativeDriver: true
32
- });
33
- fadeRef.current.start();
37
+ animateFade(1);
34
38
  return;
35
39
  }
36
- fadeRef.current = Animated.timing(fadeAnim, {
37
- toValue: 0,
38
- duration: 250,
39
- useNativeDriver: true
40
- });
41
- fadeRef.current.start(() => setIsUnderlinedVisible(false));
40
+ animateFade(0, () => setIsUnderlinedVisible(false));
42
41
  return () => {
43
42
  fadeRef.current?.stop();
44
43
  };
45
- }, [showUnderlinedKeys]);
44
+ }, [showUnderlinedKeys, animateFade]);
46
45
  return /*#__PURE__*/_jsxs(View, {
47
46
  style: styles.container,
48
47
  children: [/*#__PURE__*/_jsx(Layout, {
49
48
  ...props,
50
49
  onLayoutChange: setIsSecondaryLayoutSelected
51
- }), isUnderlinedVisible && !isSecondaryLayoutSelected && !isMobile && /*#__PURE__*/_jsx(Animated.View, {
50
+ }), isUnderlinedLayoutVisible && /*#__PURE__*/_jsx(Animated.View, {
52
51
  style: {
53
52
  opacity: fadeAnim
54
53
  },
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useRef","useState","Animated","StyleSheet","useWindowDimensions","View","IS_MOBILE","getLayoutByCharType","UnderlinedLayout","MOBILE_LAYOUT_WIDTH","jsx","_jsx","jsxs","_jsxs","MainLayout","style","characterType","showUnderlinedKeys","props","isUnderlinedVisible","setIsUnderlinedVisible","isSecondaryLayoutSelected","setIsSecondaryLayoutSelected","fadeAnim","Value","current","fadeRef","width","isMobile","Layout","timing","toValue","duration","useNativeDriver","start","stop","styles","container","children","onLayoutChange","opacity","create","flexDirection","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["features/keyboard/components/MainLayout.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","useState","useCallback","Animated","StyleSheet","useWindowDimensions","View","IS_MOBILE","IS_WEB","getLayoutByCharType","UnderlinedLayout","MOBILE_LAYOUT_WIDTH","jsx","_jsx","jsxs","_jsxs","MainLayout","characterType","showUnderlinedKeys","props","isUnderlinedVisible","setIsUnderlinedVisible","isSecondaryLayoutSelected","setIsSecondaryLayoutSelected","fadeAnim","Value","current","fadeRef","width","isMobile","Layout","isUnderlinedLayoutVisible","animateFade","toValue","onComplete","stop","timing","duration","useNativeDriver","start","style","styles","container","children","onLayoutChange","opacity","create","flexDirection","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["features/keyboard/components/MainLayout.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,15 @@
1
1
  import React from 'react';
2
- import { StyleProp, ViewStyle } from 'react-native';
3
2
  import { SelectOptionColor } from '@magmamath/react-native-ui';
4
3
  import { KeyboardKey, KeyboardKeyValue } from '../types/types';
5
4
  type LayoutProps = {
6
5
  onKeyPress: (key: KeyboardKeyValue) => void;
7
6
  characterType?: number;
8
- style?: StyleProp<ViewStyle>;
9
7
  color?: SelectOptionColor;
10
8
  isVisible?: boolean;
11
9
  isDisabled?: boolean;
12
10
  showUnderlinedKeys?: boolean;
13
11
  disabledKeys?: KeyboardKey[];
14
12
  };
15
- export declare const MainLayout: ({ style, characterType, showUnderlinedKeys, ...props }: LayoutProps) => React.JSX.Element;
13
+ export declare const MainLayout: ({ characterType, showUnderlinedKeys, ...props }: LayoutProps) => React.JSX.Element;
16
14
  export {};
17
15
  //# sourceMappingURL=MainLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/features/keyboard/components/MainLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AACnE,OAAO,EAAY,SAAS,EAAyC,SAAS,EAAE,MAAM,cAAc,CAAA;AACpG,OAAO,EAAE,iBAAiB,EAAa,MAAM,4BAA4B,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAI9D,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,2DAA4D,WAAW,sBA4C7F,CAAA"}
1
+ {"version":3,"file":"MainLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/features/keyboard/components/MainLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,EAAE,iBAAiB,EAAqB,MAAM,4BAA4B,CAAA;AAEjF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAI9D,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,oDAIpB,WAAW,sBAiDb,CAAA"}
@@ -1,17 +1,15 @@
1
1
  import React from 'react';
2
- import { StyleProp, ViewStyle } from 'react-native';
3
2
  import { SelectOptionColor } from '@magmamath/react-native-ui';
4
3
  import { KeyboardKey, KeyboardKeyValue } from '../types/types';
5
4
  type LayoutProps = {
6
5
  onKeyPress: (key: KeyboardKeyValue) => void;
7
6
  characterType?: number;
8
- style?: StyleProp<ViewStyle>;
9
7
  color?: SelectOptionColor;
10
8
  isVisible?: boolean;
11
9
  isDisabled?: boolean;
12
10
  showUnderlinedKeys?: boolean;
13
11
  disabledKeys?: KeyboardKey[];
14
12
  };
15
- export declare const MainLayout: ({ style, characterType, showUnderlinedKeys, ...props }: LayoutProps) => React.JSX.Element;
13
+ export declare const MainLayout: ({ characterType, showUnderlinedKeys, ...props }: LayoutProps) => React.JSX.Element;
16
14
  export {};
17
15
  //# sourceMappingURL=MainLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MainLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/features/keyboard/components/MainLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AACnE,OAAO,EAAY,SAAS,EAAyC,SAAS,EAAE,MAAM,cAAc,CAAA;AACpG,OAAO,EAAE,iBAAiB,EAAa,MAAM,4BAA4B,CAAA;AAEzE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAI9D,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,2DAA4D,WAAW,sBA4C7F,CAAA"}
1
+ {"version":3,"file":"MainLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/features/keyboard/components/MainLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,EAAE,iBAAiB,EAAqB,MAAM,4BAA4B,CAAA;AAEjF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAI9D,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,oDAIpB,WAAW,sBAiDb,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "0.9.4-rc.0",
3
+ "version": "0.9.4",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -57,7 +57,7 @@ export const Keyboard = ({ style, characterType, isVisible = true, ...props }: K
57
57
  },
58
58
  ]}
59
59
  >
60
- <MainLayout {...props} />
60
+ <MainLayout {...props} characterType={characterType} />
61
61
  <Numpad {...props} style={mobileStyles} />
62
62
  </Animated.View>
63
63
  )
@@ -1,6 +1,6 @@
1
- import React, { useEffect, useMemo, useRef, useState } from 'react'
2
- import { Animated, StyleProp, StyleSheet, useWindowDimensions, View, ViewStyle } from 'react-native'
3
- import { SelectOptionColor, IS_MOBILE } from '@magmamath/react-native-ui'
1
+ import React, { useEffect, useMemo, useRef, useState, useCallback } from 'react'
2
+ import { Animated, StyleSheet, useWindowDimensions, View } from 'react-native'
3
+ import { SelectOptionColor, IS_MOBILE, IS_WEB } from '@magmamath/react-native-ui'
4
4
  import { getLayoutByCharType } from '../constants/keyboardLayouts'
5
5
  import { KeyboardKey, KeyboardKeyValue } from '../types/types'
6
6
  import { UnderlinedLayout } from './UnderlinedLayout/UnderlinedLayout'
@@ -9,7 +9,6 @@ import { MOBILE_LAYOUT_WIDTH } from '../constants/constants'
9
9
  type LayoutProps = {
10
10
  onKeyPress: (key: KeyboardKeyValue) => void
11
11
  characterType?: number
12
- style?: StyleProp<ViewStyle>
13
12
  color?: SelectOptionColor
14
13
  isVisible?: boolean
15
14
  isDisabled?: boolean
@@ -17,44 +16,53 @@ type LayoutProps = {
17
16
  disabledKeys?: KeyboardKey[]
18
17
  }
19
18
 
20
- export const MainLayout = ({ style, characterType, showUnderlinedKeys, ...props }: LayoutProps) => {
19
+ export const MainLayout = ({
20
+ characterType,
21
+ showUnderlinedKeys = false,
22
+ ...props
23
+ }: LayoutProps) => {
21
24
  const [isUnderlinedVisible, setIsUnderlinedVisible] = useState(showUnderlinedKeys)
22
25
  const [isSecondaryLayoutSelected, setIsSecondaryLayoutSelected] = useState(false)
23
26
 
24
27
  const fadeAnim = useRef(new Animated.Value(showUnderlinedKeys ? 1 : 0)).current
25
28
  const fadeRef = useRef<Animated.CompositeAnimation | null>(null)
29
+
26
30
  const { width } = useWindowDimensions()
27
31
  const isMobile = width <= MOBILE_LAYOUT_WIDTH || IS_MOBILE
28
32
 
29
33
  const Layout = useMemo(() => getLayoutByCharType(characterType), [characterType])
34
+ const isUnderlinedLayoutVisible = isUnderlinedVisible && !isSecondaryLayoutSelected && !isMobile
30
35
 
31
- useEffect(() => {
32
- if (showUnderlinedKeys) {
33
- setIsUnderlinedVisible(true)
36
+ const animateFade = useCallback(
37
+ (toValue: number, onComplete?: () => void) => {
38
+ fadeRef.current?.stop()
34
39
  fadeRef.current = Animated.timing(fadeAnim, {
35
- toValue: 1,
40
+ toValue,
36
41
  duration: 250,
37
- useNativeDriver: true,
42
+ useNativeDriver: !IS_WEB,
38
43
  })
39
- fadeRef.current.start()
44
+ fadeRef.current.start(() => onComplete?.())
45
+ },
46
+ [fadeAnim],
47
+ )
48
+
49
+ useEffect(() => {
50
+ if (showUnderlinedKeys) {
51
+ setIsUnderlinedVisible(true)
52
+ animateFade(1)
40
53
  return
41
54
  }
42
- fadeRef.current = Animated.timing(fadeAnim, {
43
- toValue: 0,
44
- duration: 250,
45
- useNativeDriver: true,
46
- })
47
- fadeRef.current.start(() => setIsUnderlinedVisible(false))
55
+ animateFade(0, () => setIsUnderlinedVisible(false))
48
56
 
49
57
  return () => {
50
58
  fadeRef.current?.stop()
51
59
  }
52
- }, [showUnderlinedKeys])
60
+ }, [showUnderlinedKeys, animateFade])
53
61
 
54
62
  return (
55
63
  <View style={styles.container}>
56
64
  <Layout {...props} onLayoutChange={setIsSecondaryLayoutSelected} />
57
- {isUnderlinedVisible && !isSecondaryLayoutSelected && !isMobile && (
65
+ {isUnderlinedLayoutVisible && (
58
66
  <Animated.View style={{ opacity: fadeAnim }}>
59
67
  <UnderlinedLayout {...props} />
60
68
  </Animated.View>