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

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.
Files changed (27) hide show
  1. package/.idea/workspace.xml +43 -43
  2. package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js +3 -1
  3. package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
  4. package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +13 -11
  5. package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
  6. package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js.map +1 -1
  7. package/dist/module/features/keyboard/components/UnitsLayout/helpers.js +2 -1
  8. package/dist/module/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
  9. package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +14 -12
  10. package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
  11. package/dist/module/features/keyboard/components/UnitsLayout/types.js.map +1 -1
  12. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
  13. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
  14. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +3 -6
  15. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
  16. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts +5 -0
  17. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
  18. package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
  19. package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
  20. package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +3 -6
  21. package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
  22. package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts +5 -0
  23. package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/src/features/keyboard/components/UnitsLayout/helpers.tsx +3 -0
  26. package/src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts +26 -40
  27. package/src/features/keyboard/components/UnitsLayout/types.ts +6 -0
@@ -4,9 +4,7 @@
4
4
  <option name="autoReloadType" value="SELECTIVE" />
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
- <list default="true" id="ce1b67e5-e42c-4dab-8d84-832433eb9fe4" name="Changes" comment="chore: version update">
8
- <change beforePath="$PROJECT_DIR$/src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts" afterDir="false" />
9
- </list>
7
+ <list default="true" id="ce1b67e5-e42c-4dab-8d84-832433eb9fe4" name="Changes" comment="fix: added new mobile breakpoints for basic and algebra layout" />
10
8
  <option name="SHOW_DIALOG" value="false" />
11
9
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
12
10
  <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -23,7 +21,7 @@
23
21
  <component name="Git.Settings">
24
22
  <option name="RECENT_BRANCH_BY_REPOSITORY">
25
23
  <map>
26
- <entry key="$PROJECT_DIR$" value="main" />
24
+ <entry key="$PROJECT_DIR$" value="feature/3307-keyboard-breakpoints" />
27
25
  </map>
28
26
  </option>
29
27
  <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -192,39 +190,9 @@
192
190
  <workItem from="1765907874976" duration="1725000" />
193
191
  <workItem from="1765997348478" duration="98000" />
194
192
  <workItem from="1765997880566" duration="9660000" />
195
- <workItem from="1766415953458" duration="2208000" />
196
- </task>
197
- <task id="LOCAL-00044" summary="feat: added mobile layout for basic extended plus">
198
- <option name="closed" value="true" />
199
- <created>1759751740841</created>
200
- <option name="number" value="00044" />
201
- <option name="presentableId" value="LOCAL-00044" />
202
- <option name="project" value="LOCAL" />
203
- <updated>1759751740841</updated>
204
- </task>
205
- <task id="LOCAL-00045" summary="feat: added mobile layout for units">
206
- <option name="closed" value="true" />
207
- <created>1759754017450</created>
208
- <option name="number" value="00045" />
209
- <option name="presentableId" value="LOCAL-00045" />
210
- <option name="project" value="LOCAL" />
211
- <updated>1759754017450</updated>
212
- </task>
213
- <task id="LOCAL-00046" summary="feat: added mobile basic layout">
214
- <option name="closed" value="true" />
215
- <created>1759758990849</created>
216
- <option name="number" value="00046" />
217
- <option name="presentableId" value="LOCAL-00046" />
218
- <option name="project" value="LOCAL" />
219
- <updated>1759758990849</updated>
220
- </task>
221
- <task id="LOCAL-00047" summary="chore: version update">
222
- <option name="closed" value="true" />
223
- <created>1759762164134</created>
224
- <option name="number" value="00047" />
225
- <option name="presentableId" value="LOCAL-00047" />
226
- <option name="project" value="LOCAL" />
227
- <updated>1759762164134</updated>
193
+ <workItem from="1766415953458" duration="2436000" />
194
+ <workItem from="1766487717021" duration="4617000" />
195
+ <workItem from="1766498143970" duration="4657000" />
228
196
  </task>
229
197
  <task id="LOCAL-00048" summary="feat: updated mobile numpad padding for advanced characters">
230
198
  <option name="closed" value="true" />
@@ -586,7 +554,39 @@
586
554
  <option name="project" value="LOCAL" />
587
555
  <updated>1766048046880</updated>
588
556
  </task>
589
- <option name="localTasksCounter" value="93" />
557
+ <task id="LOCAL-00093" summary="feat: added breakpoints for tabs keyboard">
558
+ <option name="closed" value="true" />
559
+ <created>1766418763276</created>
560
+ <option name="number" value="00093" />
561
+ <option name="presentableId" value="LOCAL-00093" />
562
+ <option name="project" value="LOCAL" />
563
+ <updated>1766418763276</updated>
564
+ </task>
565
+ <task id="LOCAL-00094" summary="chore: code refactoring">
566
+ <option name="closed" value="true" />
567
+ <created>1766497346123</created>
568
+ <option name="number" value="00094" />
569
+ <option name="presentableId" value="LOCAL-00094" />
570
+ <option name="project" value="LOCAL" />
571
+ <updated>1766497346123</updated>
572
+ </task>
573
+ <task id="LOCAL-00095" summary="fix: import fix">
574
+ <option name="closed" value="true" />
575
+ <created>1766497738723</created>
576
+ <option name="number" value="00095" />
577
+ <option name="presentableId" value="LOCAL-00095" />
578
+ <option name="project" value="LOCAL" />
579
+ <updated>1766497738723</updated>
580
+ </task>
581
+ <task id="LOCAL-00096" summary="fix: added new mobile breakpoints for basic and algebra layout">
582
+ <option name="closed" value="true" />
583
+ <created>1766502402788</created>
584
+ <option name="number" value="00096" />
585
+ <option name="presentableId" value="LOCAL-00096" />
586
+ <option name="project" value="LOCAL" />
587
+ <updated>1766502402788</updated>
588
+ </task>
589
+ <option name="localTasksCounter" value="97" />
590
590
  <servers />
591
591
  </component>
592
592
  <component name="TypeScriptGeneratedFilesManager">
@@ -604,9 +604,6 @@
604
604
  </option>
605
605
  </component>
606
606
  <component name="VcsManagerConfiguration">
607
- <MESSAGE value="chore: algebra layout refactored" />
608
- <MESSAGE value="chore: numpad refactoring" />
609
- <MESSAGE value="chore: unitTabs refactoring" />
610
607
  <MESSAGE value="feat: added rn styles updates" />
611
608
  <MESSAGE value="chore: code refactoring for localization" />
612
609
  <MESSAGE value="fix: removed basic plus mobile layout" />
@@ -621,7 +618,6 @@
621
618
  <MESSAGE value="feat: added new spreadsheet buttons animation" />
622
619
  <MESSAGE value="chore: version change" />
623
620
  <MESSAGE value="fix: passed props correctly" />
624
- <MESSAGE value="chore: code refactoring" />
625
621
  <MESSAGE value="chore: changed version" />
626
622
  <MESSAGE value="feat: added slash to spreadsheet keyboard layout" />
627
623
  <MESSAGE value="chore: updated imports" />
@@ -629,7 +625,11 @@
629
625
  <MESSAGE value="fix: updated mathfield value for square brackets" />
630
626
  <MESSAGE value="feat: added time layout to units" />
631
627
  <MESSAGE value="chore: version update" />
632
- <option name="LAST_COMMIT_MESSAGE" value="chore: version update" />
628
+ <MESSAGE value="feat: added breakpoints for tabs keyboard" />
629
+ <MESSAGE value="chore: code refactoring" />
630
+ <MESSAGE value="fix: import fix" />
631
+ <MESSAGE value="fix: added new mobile breakpoints for basic and algebra layout" />
632
+ <option name="LAST_COMMIT_MESSAGE" value="fix: added new mobile breakpoints for basic and algebra layout" />
633
633
  </component>
634
634
  <component name="github-copilot-workspace">
635
635
  <instructionFileLocations>
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getSelectOptions = void 0;
6
+ exports.isKeyboardUnitsGroupType = exports.getSelectOptions = void 0;
7
7
  var _reactNativeUi = require("@magmamath/react-native-ui");
8
8
  var _keyboardGroups = require("./keyboardGroups.js");
9
9
  var _react = _interopRequireDefault(require("react"));
@@ -43,4 +43,6 @@ const getSelectOptions = ({
43
43
  }
44
44
  };
45
45
  exports.getSelectOptions = getSelectOptions;
46
+ const isKeyboardUnitsGroupType = k => Object.values(_types.KeyboardUnitsGroupType).includes(k);
47
+ exports.isKeyboardUnitsGroupType = isKeyboardUnitsGroupType;
46
48
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeUi","require","_keyboardGroups","_react","_interopRequireDefault","_types","_AlgebraIcon","_jsxRuntime","e","__esModule","default","getSelectOptions","activeTabKey","selectedLayout","setSelectedLayout","onLayoutChange","SelectedIcon","UNITS_KEYBOARD_GROUPS","get","icon","RulerIcon","key","SelectedLayout","ALGEBRA","title","jsx","AlgebraIcon","color","COLORS","NEUTRAL_1","NEUTRAL_9","size","onPressIn","UNITS","exports"],"sourceRoot":"../../../../../../src","sources":["features/keyboard/components/UnitsLayout/helpers.tsx"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAAkE,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAS3D,MAAMG,gBAAgB,GAAGA,CAAC;EAC/BC,YAAY;EACZC,cAAc;EACdC,iBAAiB;EACjBC;AAC2B,CAAC,KAAK;EACjC;IACE,MAAMC,YAAY,GAAGC,qCAAqB,CAACC,GAAG,CAACN,YAAY,CAAC,EAAEO,IAAI,IAAIC,wBAAS;IAE/E,OAAO,CACL;MACEC,GAAG,EAAEC,qBAAc,CAACC,OAAO;MAC3BC,KAAK,eACH,IAAAjB,WAAA,CAAAkB,GAAA,EAACnB,YAAA,CAAAoB,WAAW;QACVC,KAAK,EAAEd,cAAc,KAAKS,qBAAc,CAACC,OAAO,GAAGK,qBAAM,CAACC,SAAS,GAAGD,qBAAM,CAACE,SAAU;QACvFC,IAAI,EAAE;MAAG,CACV,CACF;MACDC,SAAS,EAAEA,CAAA,KAAM;QACflB,iBAAiB,CAACQ,qBAAc,CAACC,OAAO,CAAC;QACzCR,cAAc,GAAG,KAAK,CAAC;MACzB;IACF,CAAC,EACD;MACEM,GAAG,EAAEC,qBAAc,CAACW,KAAK;MACzBT,KAAK,eACH,IAAAjB,WAAA,CAAAkB,GAAA,EAACT,YAAY;QACXW,KAAK,EAAEd,cAAc,KAAKS,qBAAc,CAACW,KAAK,GAAGL,qBAAM,CAACC,SAAS,GAAGD,qBAAM,CAACE,SAAU;QACrFC,IAAI,EAAE;MAAG,CACV,CACF;MACDC,SAAS,EAAEA,CAAA,KAAM;QACflB,iBAAiB,CAACQ,qBAAc,CAACW,KAAK,CAAC;QACvClB,cAAc,GAAG,IAAI,CAAC;MACxB;IACF,CAAC,CACF;EACH;AACF,CAAC;AAAAmB,OAAA,CAAAvB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeUi","require","_keyboardGroups","_react","_interopRequireDefault","_types","_AlgebraIcon","_jsxRuntime","e","__esModule","default","getSelectOptions","activeTabKey","selectedLayout","setSelectedLayout","onLayoutChange","SelectedIcon","UNITS_KEYBOARD_GROUPS","get","icon","RulerIcon","key","SelectedLayout","ALGEBRA","title","jsx","AlgebraIcon","color","COLORS","NEUTRAL_1","NEUTRAL_9","size","onPressIn","UNITS","exports","isKeyboardUnitsGroupType","k","Object","values","KeyboardUnitsGroupType","includes"],"sourceRoot":"../../../../../../src","sources":["features/keyboard/components/UnitsLayout/helpers.tsx"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AAAkE,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAS3D,MAAMG,gBAAgB,GAAGA,CAAC;EAC/BC,YAAY;EACZC,cAAc;EACdC,iBAAiB;EACjBC;AAC2B,CAAC,KAAK;EACjC;IACE,MAAMC,YAAY,GAAGC,qCAAqB,CAACC,GAAG,CAACN,YAAY,CAAC,EAAEO,IAAI,IAAIC,wBAAS;IAE/E,OAAO,CACL;MACEC,GAAG,EAAEC,qBAAc,CAACC,OAAO;MAC3BC,KAAK,eACH,IAAAjB,WAAA,CAAAkB,GAAA,EAACnB,YAAA,CAAAoB,WAAW;QACVC,KAAK,EAAEd,cAAc,KAAKS,qBAAc,CAACC,OAAO,GAAGK,qBAAM,CAACC,SAAS,GAAGD,qBAAM,CAACE,SAAU;QACvFC,IAAI,EAAE;MAAG,CACV,CACF;MACDC,SAAS,EAAEA,CAAA,KAAM;QACflB,iBAAiB,CAACQ,qBAAc,CAACC,OAAO,CAAC;QACzCR,cAAc,GAAG,KAAK,CAAC;MACzB;IACF,CAAC,EACD;MACEM,GAAG,EAAEC,qBAAc,CAACW,KAAK;MACzBT,KAAK,eACH,IAAAjB,WAAA,CAAAkB,GAAA,EAACT,YAAY;QACXW,KAAK,EAAEd,cAAc,KAAKS,qBAAc,CAACW,KAAK,GAAGL,qBAAM,CAACC,SAAS,GAAGD,qBAAM,CAACE,SAAU;QACrFC,IAAI,EAAE;MAAG,CACV,CACF;MACDC,SAAS,EAAEA,CAAA,KAAM;QACflB,iBAAiB,CAACQ,qBAAc,CAACW,KAAK,CAAC;QACvClB,cAAc,GAAG,IAAI,CAAC;MACxB;IACF,CAAC,CACF;EACH;AACF,CAAC;AAAAmB,OAAA,CAAAvB,gBAAA,GAAAA,gBAAA;AAEM,MAAMwB,wBAAwB,GAAIC,CAAS,IAC/CC,MAAM,CAACC,MAAM,CAACC,6BAAsB,CAAC,CAAcC,QAAQ,CAACJ,CAAC,CAAC;AAAAF,OAAA,CAAAC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -8,6 +8,7 @@ var _index = require("../../../../../shared/translation/index.js");
8
8
  var _react = require("react");
9
9
  var _types = require("../types.js");
10
10
  var _reactNative = require("react-native");
11
+ var _helpers = require("../helpers.js");
11
12
  const useUnitTabs = () => {
12
13
  const t = (0, _index.useText)();
13
14
  const {
@@ -15,8 +16,7 @@ const useUnitTabs = () => {
15
16
  } = (0, _reactNative.useWindowDimensions)();
16
17
  const allTabs = (0, _react.useMemo)(() => [{
17
18
  title: t('keyboard.length'),
18
- key: _types.KeyboardUnitsGroupType.LENGTH,
19
- minWidth: 1005
19
+ key: _types.KeyboardUnitsGroupType.LENGTH
20
20
  }, {
21
21
  title: t('keyboard.area'),
22
22
  key: _types.KeyboardUnitsGroupType.AREA,
@@ -24,7 +24,7 @@ const useUnitTabs = () => {
24
24
  }, {
25
25
  title: t('keyboard.volume'),
26
26
  key: _types.KeyboardUnitsGroupType.VOLUME,
27
- minWidth: 1005
27
+ minWidth: 1060
28
28
  }, {
29
29
  title: t('keyboard.weight'),
30
30
  key: _types.KeyboardUnitsGroupType.WEIGHT,
@@ -34,17 +34,19 @@ const useUnitTabs = () => {
34
34
  key: _types.KeyboardUnitsGroupType.TIME,
35
35
  minWidth: 1125
36
36
  }], [t]);
37
- const tabs = (0, _react.useMemo)(() => allTabs.filter(tab => width >= tab.minWidth), [allTabs, width]);
38
- const [activeTab, setActiveTab] = (0, _react.useState)(() => tabs[0]);
39
- (0, _react.useEffect)(() => {
40
- if (!tabs.length) return;
41
- const stillVisible = tabs.some(t => t.key === activeTab?.key);
42
- if (!stillVisible) setActiveTab(tabs[0]);
43
- }, [tabs, activeTab?.key]);
37
+ const tabs = (0, _react.useMemo)(() => allTabs.filter(tab => tab.minWidth === undefined || width >= tab.minWidth), [allTabs, width]);
38
+ const [activeKey, setActiveKey] = (0, _react.useState)(() => tabs[0]?.key);
39
+ const activeTab = (0, _react.useMemo)(() => {
40
+ return tabs.find(t => t?.key && t.key === activeKey) ?? tabs[0];
41
+ }, [tabs, activeKey]);
44
42
  return {
45
43
  tabs,
46
44
  activeTab,
47
- setActiveTab
45
+ setActiveTab: tab => {
46
+ if ((0, _helpers.isKeyboardUnitsGroupType)(tab.key)) {
47
+ setActiveKey(tab.key);
48
+ }
49
+ }
48
50
  };
49
51
  };
50
52
  exports.useUnitTabs = useUnitTabs;
@@ -1 +1 @@
1
- {"version":3,"names":["_index","require","_react","_types","_reactNative","useUnitTabs","t","useText","width","useWindowDimensions","allTabs","useMemo","title","key","KeyboardUnitsGroupType","LENGTH","minWidth","AREA","VOLUME","WEIGHT","TIME","tabs","filter","tab","activeTab","setActiveTab","useState","useEffect","length","stillVisible","some","exports"],"sourceRoot":"../../../../../../../src","sources":["features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAMO,MAAMI,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMC,CAAC,GAAG,IAAAC,cAAO,EAAC,CAAC;EACnB,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EAEvC,MAAMC,OAAO,GAAG,IAAAC,cAAO,EACrB,MAAM,CACJ;IACEC,KAAK,EAAEN,CAAC,CAAC,iBAAiB,CAAC;IAC3BO,GAAG,EAAEC,6BAAsB,CAACC,MAAM;IAClCC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEJ,KAAK,EAAEN,CAAC,CAAC,eAAe,CAAC;IACzBO,GAAG,EAAEC,6BAAsB,CAACG,IAAI;IAChCD,QAAQ,EAAE;EACZ,CAAC,EACD;IACEJ,KAAK,EAAEN,CAAC,CAAC,iBAAiB,CAAC;IAC3BO,GAAG,EAAEC,6BAAsB,CAACI,MAAM;IAClCF,QAAQ,EAAE;EACZ,CAAC,EACD;IACEJ,KAAK,EAAEN,CAAC,CAAC,iBAAiB,CAAC;IAC3BO,GAAG,EAAEC,6BAAsB,CAACK,MAAM;IAClCH,QAAQ,EAAE;EACZ,CAAC,EACD;IACEJ,KAAK,EAAEN,CAAC,CAAC,eAAe,CAAC;IACzBO,GAAG,EAAEC,6BAAsB,CAACM,IAAI;IAChCJ,QAAQ,EAAE;EACZ,CAAC,CACF,EACD,CAACV,CAAC,CACJ,CAAC;EAED,MAAMe,IAAI,GAAG,IAAAV,cAAO,EAAC,MAAMD,OAAO,CAACY,MAAM,CAAEC,GAAG,IAAKf,KAAK,IAAIe,GAAG,CAACP,QAAQ,CAAC,EAAE,CAACN,OAAO,EAAEF,KAAK,CAAC,CAAC;EAE5F,MAAM,CAACgB,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAAiB,MAAML,IAAI,CAAC,CAAC,CAAC,CAAC;EAEzE,IAAAM,gBAAS,EAAC,MAAM;IACd,IAAI,CAACN,IAAI,CAACO,MAAM,EAAE;IAClB,MAAMC,YAAY,GAAGR,IAAI,CAACS,IAAI,CAAExB,CAAC,IAAKA,CAAC,CAACO,GAAG,KAAKW,SAAS,EAAEX,GAAG,CAAC;IAC/D,IAAI,CAACgB,YAAY,EAAEJ,YAAY,CAACJ,IAAI,CAAC,CAAC,CAAC,CAAC;EAC1C,CAAC,EAAE,CAACA,IAAI,EAAEG,SAAS,EAAEX,GAAG,CAAC,CAAC;EAE1B,OAAO;IAAEQ,IAAI;IAAEG,SAAS;IAAEC;EAAa,CAAC;AAC1C,CAAC;AAAAM,OAAA,CAAA1B,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_index","require","_react","_types","_reactNative","_helpers","useUnitTabs","t","useText","width","useWindowDimensions","allTabs","useMemo","title","key","KeyboardUnitsGroupType","LENGTH","AREA","minWidth","VOLUME","WEIGHT","TIME","tabs","filter","tab","undefined","activeKey","setActiveKey","useState","activeTab","find","setActiveTab","isKeyboardUnitsGroupType","exports"],"sourceRoot":"../../../../../../../src","sources":["features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AAEO,MAAMK,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMC,CAAC,GAAG,IAAAC,cAAO,EAAC,CAAC;EACnB,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EAEvC,MAAMC,OAAO,GAAG,IAAAC,cAAO,EACrB,MAAM,CACJ;IAAEC,KAAK,EAAEN,CAAC,CAAC,iBAAiB,CAAC;IAAEO,GAAG,EAAEC,6BAAsB,CAACC;EAAO,CAAC,EACnE;IAAEH,KAAK,EAAEN,CAAC,CAAC,eAAe,CAAC;IAAEO,GAAG,EAAEC,6BAAsB,CAACE,IAAI;IAAEC,QAAQ,EAAE;EAAK,CAAC,EAC/E;IAAEL,KAAK,EAAEN,CAAC,CAAC,iBAAiB,CAAC;IAAEO,GAAG,EAAEC,6BAAsB,CAACI,MAAM;IAAED,QAAQ,EAAE;EAAK,CAAC,EACnF;IAAEL,KAAK,EAAEN,CAAC,CAAC,iBAAiB,CAAC;IAAEO,GAAG,EAAEC,6BAAsB,CAACK,MAAM;IAAEF,QAAQ,EAAE;EAAK,CAAC,EACnF;IAAEL,KAAK,EAAEN,CAAC,CAAC,eAAe,CAAC;IAAEO,GAAG,EAAEC,6BAAsB,CAACM,IAAI;IAAEH,QAAQ,EAAE;EAAK,CAAC,CAChF,EACD,CAACX,CAAC,CACJ,CAAC;EAED,MAAMe,IAAI,GAAG,IAAAV,cAAO,EAClB,MAAMD,OAAO,CAACY,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACN,QAAQ,KAAKO,SAAS,IAAIhB,KAAK,IAAIe,GAAG,CAACN,QAAQ,CAAC,EAClF,CAACP,OAAO,EAAEF,KAAK,CACjB,CAAC;EAED,MAAM,CAACiB,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAC,eAAQ,EAAqC,MAAMN,IAAI,CAAC,CAAC,CAAC,EAAER,GAAG,CAAC;EAElG,MAAMe,SAAS,GAAG,IAAAjB,cAAO,EAAC,MAAM;IAC9B,OAAOU,IAAI,CAACQ,IAAI,CAAEvB,CAAC,IAAKA,CAAC,EAAEO,GAAG,IAAIP,CAAC,CAACO,GAAG,KAAKY,SAAS,CAAC,IAAIJ,IAAI,CAAC,CAAC,CAAC;EACnE,CAAC,EAAE,CAACA,IAAI,EAAEI,SAAS,CAAC,CAAC;EAErB,OAAO;IACLJ,IAAI;IACJO,SAAS;IACTE,YAAY,EAAGP,GAAmB,IAAK;MACrC,IAAI,IAAAQ,iCAAwB,EAACR,GAAG,CAACV,GAAG,CAAC,EAAE;QACrCa,YAAY,CAACH,GAAG,CAACV,GAAG,CAAC;MACvB;IACF;EACF,CAAC;AACH,CAAC;AAAAmB,OAAA,CAAA3B,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["SelectedLayout","exports","KeyboardUnitsGroupType"],"sourceRoot":"../../../../../../src","sources":["features/keyboard/components/UnitsLayout/types.ts"],"mappings":";;;;;;IAEYA,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAAA,IAKdE,sBAAsB,GAAAD,OAAA,CAAAC,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["SelectedLayout","exports","KeyboardUnitsGroupType"],"sourceRoot":"../../../../../../src","sources":["features/keyboard/components/UnitsLayout/types.ts"],"mappings":";;;;;;IAGYA,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAAA,IAKdE,sBAAsB,GAAAD,OAAA,CAAAC,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { COLORS, RulerIcon } from '@magmamath/react-native-ui';
4
4
  import { UNITS_KEYBOARD_GROUPS } from "./keyboardGroups.js";
5
5
  import React from 'react';
6
- import { SelectedLayout } from "./types.js";
6
+ import { KeyboardUnitsGroupType, SelectedLayout } from "./types.js";
7
7
  import { AlgebraIcon } from "../../../../shared/icons/AlgebraIcon.js";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  export const getSelectOptions = ({
@@ -37,4 +37,5 @@ export const getSelectOptions = ({
37
37
  }];
38
38
  }
39
39
  };
40
+ export const isKeyboardUnitsGroupType = k => Object.values(KeyboardUnitsGroupType).includes(k);
40
41
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["COLORS","RulerIcon","UNITS_KEYBOARD_GROUPS","React","SelectedLayout","AlgebraIcon","jsx","_jsx","getSelectOptions","activeTabKey","selectedLayout","setSelectedLayout","onLayoutChange","SelectedIcon","get","icon","key","ALGEBRA","title","color","NEUTRAL_1","NEUTRAL_9","size","onPressIn","UNITS"],"sourceRoot":"../../../../../../src","sources":["features/keyboard/components/UnitsLayout/helpers.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,4BAA4B;AAC9D,SAASC,qBAAqB,QAAQ,qBAAkB;AACxD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAAiCC,cAAc,QAAQ,YAAS;AAChE,SAASC,WAAW,QAAQ,yCAAsC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASlE,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,YAAY;EACZC,cAAc;EACdC,iBAAiB;EACjBC;AAC2B,CAAC,KAAK;EACjC;IACE,MAAMC,YAAY,GAAGX,qBAAqB,CAACY,GAAG,CAACL,YAAY,CAAC,EAAEM,IAAI,IAAId,SAAS;IAE/E,OAAO,CACL;MACEe,GAAG,EAAEZ,cAAc,CAACa,OAAO;MAC3BC,KAAK,eACHX,IAAA,CAACF,WAAW;QACVc,KAAK,EAAET,cAAc,KAAKN,cAAc,CAACa,OAAO,GAAGjB,MAAM,CAACoB,SAAS,GAAGpB,MAAM,CAACqB,SAAU;QACvFC,IAAI,EAAE;MAAG,CACV,CACF;MACDC,SAAS,EAAEA,CAAA,KAAM;QACfZ,iBAAiB,CAACP,cAAc,CAACa,OAAO,CAAC;QACzCL,cAAc,GAAG,KAAK,CAAC;MACzB;IACF,CAAC,EACD;MACEI,GAAG,EAAEZ,cAAc,CAACoB,KAAK;MACzBN,KAAK,eACHX,IAAA,CAACM,YAAY;QACXM,KAAK,EAAET,cAAc,KAAKN,cAAc,CAACoB,KAAK,GAAGxB,MAAM,CAACoB,SAAS,GAAGpB,MAAM,CAACqB,SAAU;QACrFC,IAAI,EAAE;MAAG,CACV,CACF;MACDC,SAAS,EAAEA,CAAA,KAAM;QACfZ,iBAAiB,CAACP,cAAc,CAACoB,KAAK,CAAC;QACvCZ,cAAc,GAAG,IAAI,CAAC;MACxB;IACF,CAAC,CACF;EACH;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["COLORS","RulerIcon","UNITS_KEYBOARD_GROUPS","React","KeyboardUnitsGroupType","SelectedLayout","AlgebraIcon","jsx","_jsx","getSelectOptions","activeTabKey","selectedLayout","setSelectedLayout","onLayoutChange","SelectedIcon","get","icon","key","ALGEBRA","title","color","NEUTRAL_1","NEUTRAL_9","size","onPressIn","UNITS","isKeyboardUnitsGroupType","k","Object","values","includes"],"sourceRoot":"../../../../../../src","sources":["features/keyboard/components/UnitsLayout/helpers.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,SAAS,QAAQ,4BAA4B;AAC9D,SAASC,qBAAqB,QAAQ,qBAAkB;AACxD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,sBAAsB,EAAEC,cAAc,QAAQ,YAAS;AAChE,SAASC,WAAW,QAAQ,yCAAsC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AASlE,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,YAAY;EACZC,cAAc;EACdC,iBAAiB;EACjBC;AAC2B,CAAC,KAAK;EACjC;IACE,MAAMC,YAAY,GAAGZ,qBAAqB,CAACa,GAAG,CAACL,YAAY,CAAC,EAAEM,IAAI,IAAIf,SAAS;IAE/E,OAAO,CACL;MACEgB,GAAG,EAAEZ,cAAc,CAACa,OAAO;MAC3BC,KAAK,eACHX,IAAA,CAACF,WAAW;QACVc,KAAK,EAAET,cAAc,KAAKN,cAAc,CAACa,OAAO,GAAGlB,MAAM,CAACqB,SAAS,GAAGrB,MAAM,CAACsB,SAAU;QACvFC,IAAI,EAAE;MAAG,CACV,CACF;MACDC,SAAS,EAAEA,CAAA,KAAM;QACfZ,iBAAiB,CAACP,cAAc,CAACa,OAAO,CAAC;QACzCL,cAAc,GAAG,KAAK,CAAC;MACzB;IACF,CAAC,EACD;MACEI,GAAG,EAAEZ,cAAc,CAACoB,KAAK;MACzBN,KAAK,eACHX,IAAA,CAACM,YAAY;QACXM,KAAK,EAAET,cAAc,KAAKN,cAAc,CAACoB,KAAK,GAAGzB,MAAM,CAACqB,SAAS,GAAGrB,MAAM,CAACsB,SAAU;QACrFC,IAAI,EAAE;MAAG,CACV,CACF;MACDC,SAAS,EAAEA,CAAA,KAAM;QACfZ,iBAAiB,CAACP,cAAc,CAACoB,KAAK,CAAC;QACvCZ,cAAc,GAAG,IAAI,CAAC;MACxB;IACF,CAAC,CACF;EACH;AACF,CAAC;AAED,OAAO,MAAMa,wBAAwB,GAAIC,CAAS,IAC/CC,MAAM,CAACC,MAAM,CAACzB,sBAAsB,CAAC,CAAc0B,QAAQ,CAACH,CAAC,CAAC","ignoreList":[]}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  import { useText } from "../../../../../shared/translation/index.js";
4
- import { useEffect, useMemo, useState } from 'react';
4
+ import { useMemo, useState } from 'react';
5
5
  import { KeyboardUnitsGroupType } from "../types.js";
6
6
  import { useWindowDimensions } from 'react-native';
7
+ import { isKeyboardUnitsGroupType } from "../helpers.js";
7
8
  export const useUnitTabs = () => {
8
9
  const t = useText();
9
10
  const {
@@ -11,8 +12,7 @@ export const useUnitTabs = () => {
11
12
  } = useWindowDimensions();
12
13
  const allTabs = useMemo(() => [{
13
14
  title: t('keyboard.length'),
14
- key: KeyboardUnitsGroupType.LENGTH,
15
- minWidth: 1005
15
+ key: KeyboardUnitsGroupType.LENGTH
16
16
  }, {
17
17
  title: t('keyboard.area'),
18
18
  key: KeyboardUnitsGroupType.AREA,
@@ -20,7 +20,7 @@ export const useUnitTabs = () => {
20
20
  }, {
21
21
  title: t('keyboard.volume'),
22
22
  key: KeyboardUnitsGroupType.VOLUME,
23
- minWidth: 1005
23
+ minWidth: 1060
24
24
  }, {
25
25
  title: t('keyboard.weight'),
26
26
  key: KeyboardUnitsGroupType.WEIGHT,
@@ -30,17 +30,19 @@ export const useUnitTabs = () => {
30
30
  key: KeyboardUnitsGroupType.TIME,
31
31
  minWidth: 1125
32
32
  }], [t]);
33
- const tabs = useMemo(() => allTabs.filter(tab => width >= tab.minWidth), [allTabs, width]);
34
- const [activeTab, setActiveTab] = useState(() => tabs[0]);
35
- useEffect(() => {
36
- if (!tabs.length) return;
37
- const stillVisible = tabs.some(t => t.key === activeTab?.key);
38
- if (!stillVisible) setActiveTab(tabs[0]);
39
- }, [tabs, activeTab?.key]);
33
+ const tabs = useMemo(() => allTabs.filter(tab => tab.minWidth === undefined || width >= tab.minWidth), [allTabs, width]);
34
+ const [activeKey, setActiveKey] = useState(() => tabs[0]?.key);
35
+ const activeTab = useMemo(() => {
36
+ return tabs.find(t => t?.key && t.key === activeKey) ?? tabs[0];
37
+ }, [tabs, activeKey]);
40
38
  return {
41
39
  tabs,
42
40
  activeTab,
43
- setActiveTab
41
+ setActiveTab: tab => {
42
+ if (isKeyboardUnitsGroupType(tab.key)) {
43
+ setActiveKey(tab.key);
44
+ }
45
+ }
44
46
  };
45
47
  };
46
48
  //# sourceMappingURL=useUnitTabs.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useText","useEffect","useMemo","useState","KeyboardUnitsGroupType","useWindowDimensions","useUnitTabs","t","width","allTabs","title","key","LENGTH","minWidth","AREA","VOLUME","WEIGHT","TIME","tabs","filter","tab","activeTab","setActiveTab","length","stillVisible","some"],"sourceRoot":"../../../../../../../src","sources":["features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,4CAAmC;AAC3D,SAASC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAEpD,SAASC,sBAAsB,QAAQ,aAAU;AACjD,SAASC,mBAAmB,QAAQ,cAAc;AAMlD,OAAO,MAAMC,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMC,CAAC,GAAGP,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEQ;EAAM,CAAC,GAAGH,mBAAmB,CAAC,CAAC;EAEvC,MAAMI,OAAO,GAAGP,OAAO,CACrB,MAAM,CACJ;IACEQ,KAAK,EAAEH,CAAC,CAAC,iBAAiB,CAAC;IAC3BI,GAAG,EAAEP,sBAAsB,CAACQ,MAAM;IAClCC,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAEH,CAAC,CAAC,eAAe,CAAC;IACzBI,GAAG,EAAEP,sBAAsB,CAACU,IAAI;IAChCD,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAEH,CAAC,CAAC,iBAAiB,CAAC;IAC3BI,GAAG,EAAEP,sBAAsB,CAACW,MAAM;IAClCF,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAEH,CAAC,CAAC,iBAAiB,CAAC;IAC3BI,GAAG,EAAEP,sBAAsB,CAACY,MAAM;IAClCH,QAAQ,EAAE;EACZ,CAAC,EACD;IACEH,KAAK,EAAEH,CAAC,CAAC,eAAe,CAAC;IACzBI,GAAG,EAAEP,sBAAsB,CAACa,IAAI;IAChCJ,QAAQ,EAAE;EACZ,CAAC,CACF,EACD,CAACN,CAAC,CACJ,CAAC;EAED,MAAMW,IAAI,GAAGhB,OAAO,CAAC,MAAMO,OAAO,CAACU,MAAM,CAAEC,GAAG,IAAKZ,KAAK,IAAIY,GAAG,CAACP,QAAQ,CAAC,EAAE,CAACJ,OAAO,EAAED,KAAK,CAAC,CAAC;EAE5F,MAAM,CAACa,SAAS,EAAEC,YAAY,CAAC,GAAGnB,QAAQ,CAAiB,MAAMe,IAAI,CAAC,CAAC,CAAC,CAAC;EAEzEjB,SAAS,CAAC,MAAM;IACd,IAAI,CAACiB,IAAI,CAACK,MAAM,EAAE;IAClB,MAAMC,YAAY,GAAGN,IAAI,CAACO,IAAI,CAAElB,CAAC,IAAKA,CAAC,CAACI,GAAG,KAAKU,SAAS,EAAEV,GAAG,CAAC;IAC/D,IAAI,CAACa,YAAY,EAAEF,YAAY,CAACJ,IAAI,CAAC,CAAC,CAAC,CAAC;EAC1C,CAAC,EAAE,CAACA,IAAI,EAAEG,SAAS,EAAEV,GAAG,CAAC,CAAC;EAE1B,OAAO;IAAEO,IAAI;IAAEG,SAAS;IAAEC;EAAa,CAAC;AAC1C,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useText","useMemo","useState","KeyboardUnitsGroupType","useWindowDimensions","isKeyboardUnitsGroupType","useUnitTabs","t","width","allTabs","title","key","LENGTH","AREA","minWidth","VOLUME","WEIGHT","TIME","tabs","filter","tab","undefined","activeKey","setActiveKey","activeTab","find","setActiveTab"],"sourceRoot":"../../../../../../../src","sources":["features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,4CAAmC;AAC3D,SAASC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACzC,SAASC,sBAAsB,QAAiB,aAAU;AAC1D,SAASC,mBAAmB,QAAQ,cAAc;AAElD,SAASC,wBAAwB,QAAQ,eAAY;AAErD,OAAO,MAAMC,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMC,CAAC,GAAGP,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEQ;EAAM,CAAC,GAAGJ,mBAAmB,CAAC,CAAC;EAEvC,MAAMK,OAAO,GAAGR,OAAO,CACrB,MAAM,CACJ;IAAES,KAAK,EAAEH,CAAC,CAAC,iBAAiB,CAAC;IAAEI,GAAG,EAAER,sBAAsB,CAACS;EAAO,CAAC,EACnE;IAAEF,KAAK,EAAEH,CAAC,CAAC,eAAe,CAAC;IAAEI,GAAG,EAAER,sBAAsB,CAACU,IAAI;IAAEC,QAAQ,EAAE;EAAK,CAAC,EAC/E;IAAEJ,KAAK,EAAEH,CAAC,CAAC,iBAAiB,CAAC;IAAEI,GAAG,EAAER,sBAAsB,CAACY,MAAM;IAAED,QAAQ,EAAE;EAAK,CAAC,EACnF;IAAEJ,KAAK,EAAEH,CAAC,CAAC,iBAAiB,CAAC;IAAEI,GAAG,EAAER,sBAAsB,CAACa,MAAM;IAAEF,QAAQ,EAAE;EAAK,CAAC,EACnF;IAAEJ,KAAK,EAAEH,CAAC,CAAC,eAAe,CAAC;IAAEI,GAAG,EAAER,sBAAsB,CAACc,IAAI;IAAEH,QAAQ,EAAE;EAAK,CAAC,CAChF,EACD,CAACP,CAAC,CACJ,CAAC;EAED,MAAMW,IAAI,GAAGjB,OAAO,CAClB,MAAMQ,OAAO,CAACU,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACN,QAAQ,KAAKO,SAAS,IAAIb,KAAK,IAAIY,GAAG,CAACN,QAAQ,CAAC,EAClF,CAACL,OAAO,EAAED,KAAK,CACjB,CAAC;EAED,MAAM,CAACc,SAAS,EAAEC,YAAY,CAAC,GAAGrB,QAAQ,CAAqC,MAAMgB,IAAI,CAAC,CAAC,CAAC,EAAEP,GAAG,CAAC;EAElG,MAAMa,SAAS,GAAGvB,OAAO,CAAC,MAAM;IAC9B,OAAOiB,IAAI,CAACO,IAAI,CAAElB,CAAC,IAAKA,CAAC,EAAEI,GAAG,IAAIJ,CAAC,CAACI,GAAG,KAAKW,SAAS,CAAC,IAAIJ,IAAI,CAAC,CAAC,CAAC;EACnE,CAAC,EAAE,CAACA,IAAI,EAAEI,SAAS,CAAC,CAAC;EAErB,OAAO;IACLJ,IAAI;IACJM,SAAS;IACTE,YAAY,EAAGN,GAAmB,IAAK;MACrC,IAAIf,wBAAwB,CAACe,GAAG,CAACT,GAAG,CAAC,EAAE;QACrCY,YAAY,CAACH,GAAG,CAACT,GAAG,CAAC;MACvB;IACF;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["SelectedLayout","KeyboardUnitsGroupType"],"sourceRoot":"../../../../../../src","sources":["features/keyboard/components/UnitsLayout/types.ts"],"mappings":";;AAEA,WAAYA,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAK1B,WAAYC,sBAAsB,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["SelectedLayout","KeyboardUnitsGroupType"],"sourceRoot":"../../../../../../src","sources":["features/keyboard/components/UnitsLayout/types.ts"],"mappings":";;AAGA,WAAYA,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAK1B,WAAYC,sBAAsB,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA","ignoreList":[]}
@@ -11,5 +11,6 @@ export declare const getSelectOptions: ({ activeTabKey, selectedLayout, setSelec
11
11
  title: React.JSX.Element;
12
12
  onPressIn: () => void;
13
13
  }[];
14
+ export declare const isKeyboardUnitsGroupType: (k: string) => k is KeyboardUnitsGroupType;
14
15
  export {};
15
16
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/keyboard/components/UnitsLayout/helpers.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGhE,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,sBAAsB,CAAA;IACpC,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACnD,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,gBAAgB,yEAK1B,2BAA2B;;;;GAiC7B,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/keyboard/components/UnitsLayout/helpers.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGhE,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,sBAAsB,CAAA;IACpC,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACnD,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,gBAAgB,yEAK1B,2BAA2B;;;;GAiC7B,CAAA;AAED,eAAO,MAAM,wBAAwB,MAAO,MAAM,KAAG,CAAC,IAAI,sBACO,CAAA"}
@@ -1,11 +1,8 @@
1
+ import { UnitTab } from '../types';
1
2
  import { TabOptionProps } from '@magmamath/react-native-ui';
2
- type UnitTab = TabOptionProps & {
3
- minWidth: number;
4
- };
5
3
  export declare const useUnitTabs: () => {
6
4
  tabs: UnitTab[];
7
- activeTab: TabOptionProps;
8
- setActiveTab: import("react").Dispatch<import("react").SetStateAction<TabOptionProps>>;
5
+ activeTab: UnitTab;
6
+ setActiveTab: (tab: TabOptionProps) => void;
9
7
  };
10
- export {};
11
8
  //# sourceMappingURL=useUnitTabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUnitTabs.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAI3D,KAAK,OAAO,GAAG,cAAc,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW;;;;CA8CvB,CAAA"}
1
+ {"version":3,"file":"useUnitTabs.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,OAAO,EAAE,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,eAAO,MAAM,WAAW;;;wBA6BA,cAAc;CAMrC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { KeyboardGroup, KeyboardKey } from '@magmamath/students-features';
2
+ import { TabOptionProps } from '@magmamath/react-native-ui';
2
3
  export declare enum SelectedLayout {
3
4
  ALGEBRA = "algebra",
4
5
  UNITS = "units"
@@ -13,4 +14,8 @@ export declare enum KeyboardUnitsGroupType {
13
14
  export type UnitKeyboardGroups = {
14
15
  keys: KeyboardKey[][];
15
16
  } & Omit<KeyboardGroup, 'keys'>;
17
+ export type UnitTab = Omit<TabOptionProps, 'key'> & {
18
+ key: KeyboardUnitsGroupType;
19
+ minWidth?: number;
20
+ };
16
21
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/keyboard/components/UnitsLayout/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAEzE,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,WAAW,EAAE,EAAE,CAAA;CACtB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/keyboard/components/UnitsLayout/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,WAAW,EAAE,EAAE,CAAA;CACtB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;AAE/B,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG;IAClD,GAAG,EAAE,sBAAsB,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA"}
@@ -11,5 +11,6 @@ export declare const getSelectOptions: ({ activeTabKey, selectedLayout, setSelec
11
11
  title: React.JSX.Element;
12
12
  onPressIn: () => void;
13
13
  }[];
14
+ export declare const isKeyboardUnitsGroupType: (k: string) => k is KeyboardUnitsGroupType;
14
15
  export {};
15
16
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/keyboard/components/UnitsLayout/helpers.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGhE,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,sBAAsB,CAAA;IACpC,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACnD,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,gBAAgB,yEAK1B,2BAA2B;;;;GAiC7B,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/keyboard/components/UnitsLayout/helpers.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGhE,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,sBAAsB,CAAA;IACpC,cAAc,EAAE,cAAc,CAAA;IAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAA;IACnD,cAAc,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,gBAAgB,yEAK1B,2BAA2B;;;;GAiC7B,CAAA;AAED,eAAO,MAAM,wBAAwB,MAAO,MAAM,KAAG,CAAC,IAAI,sBACO,CAAA"}
@@ -1,11 +1,8 @@
1
+ import { UnitTab } from '../types';
1
2
  import { TabOptionProps } from '@magmamath/react-native-ui';
2
- type UnitTab = TabOptionProps & {
3
- minWidth: number;
4
- };
5
3
  export declare const useUnitTabs: () => {
6
4
  tabs: UnitTab[];
7
- activeTab: TabOptionProps;
8
- setActiveTab: import("react").Dispatch<import("react").SetStateAction<TabOptionProps>>;
5
+ activeTab: UnitTab;
6
+ setActiveTab: (tab: TabOptionProps) => void;
9
7
  };
10
- export {};
11
8
  //# sourceMappingURL=useUnitTabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUnitTabs.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAI3D,KAAK,OAAO,GAAG,cAAc,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW;;;;CA8CvB,CAAA"}
1
+ {"version":3,"file":"useUnitTabs.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,OAAO,EAAE,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,eAAO,MAAM,WAAW;;;wBA6BA,cAAc;CAMrC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { KeyboardGroup, KeyboardKey } from '@magmamath/students-features';
2
+ import { TabOptionProps } from '@magmamath/react-native-ui';
2
3
  export declare enum SelectedLayout {
3
4
  ALGEBRA = "algebra",
4
5
  UNITS = "units"
@@ -13,4 +14,8 @@ export declare enum KeyboardUnitsGroupType {
13
14
  export type UnitKeyboardGroups = {
14
15
  keys: KeyboardKey[][];
15
16
  } & Omit<KeyboardGroup, 'keys'>;
17
+ export type UnitTab = Omit<TabOptionProps, 'key'> & {
18
+ key: KeyboardUnitsGroupType;
19
+ minWidth?: number;
20
+ };
16
21
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/keyboard/components/UnitsLayout/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAEzE,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,WAAW,EAAE,EAAE,CAAA;CACtB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/keyboard/components/UnitsLayout/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,WAAW,EAAE,EAAE,CAAA;CACtB,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;AAE/B,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG;IAClD,GAAG,EAAE,sBAAsB,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "0.9.103-rc.0",
3
+ "version": "0.9.103",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -50,3 +50,6 @@ export const getSelectOptions = ({
50
50
  ]
51
51
  }
52
52
  }
53
+
54
+ export const isKeyboardUnitsGroupType = (k: string): k is KeyboardUnitsGroupType =>
55
+ (Object.values(KeyboardUnitsGroupType) as string[]).includes(k)
@@ -1,12 +1,9 @@
1
1
  import { useText } from '../../../../../shared/translation'
2
- import { useEffect, useMemo, useState } from 'react'
3
- import { TabOptionProps } from '@magmamath/react-native-ui'
4
- import { KeyboardUnitsGroupType } from '../types'
2
+ import { useMemo, useState } from 'react'
3
+ import { KeyboardUnitsGroupType, UnitTab } from '../types'
5
4
  import { useWindowDimensions } from 'react-native'
6
-
7
- type UnitTab = TabOptionProps & {
8
- minWidth: number
9
- }
5
+ import { TabOptionProps } from '@magmamath/react-native-ui'
6
+ import { isKeyboardUnitsGroupType } from '../helpers'
10
7
 
11
8
  export const useUnitTabs = () => {
12
9
  const t = useText()
@@ -14,44 +11,33 @@ export const useUnitTabs = () => {
14
11
 
15
12
  const allTabs = useMemo<UnitTab[]>(
16
13
  () => [
17
- {
18
- title: t('keyboard.length'),
19
- key: KeyboardUnitsGroupType.LENGTH,
20
- minWidth: 1005,
21
- },
22
- {
23
- title: t('keyboard.area'),
24
- key: KeyboardUnitsGroupType.AREA,
25
- minWidth: 1005,
26
- },
27
- {
28
- title: t('keyboard.volume'),
29
- key: KeyboardUnitsGroupType.VOLUME,
30
- minWidth: 1005,
31
- },
32
- {
33
- title: t('keyboard.weight'),
34
- key: KeyboardUnitsGroupType.WEIGHT,
35
- minWidth: 1060,
36
- },
37
- {
38
- title: t('keyboard.time'),
39
- key: KeyboardUnitsGroupType.TIME,
40
- minWidth: 1125,
41
- },
14
+ { title: t('keyboard.length'), key: KeyboardUnitsGroupType.LENGTH },
15
+ { title: t('keyboard.area'), key: KeyboardUnitsGroupType.AREA, minWidth: 1005 },
16
+ { title: t('keyboard.volume'), key: KeyboardUnitsGroupType.VOLUME, minWidth: 1060 },
17
+ { title: t('keyboard.weight'), key: KeyboardUnitsGroupType.WEIGHT, minWidth: 1060 },
18
+ { title: t('keyboard.time'), key: KeyboardUnitsGroupType.TIME, minWidth: 1125 },
42
19
  ],
43
20
  [t],
44
21
  )
45
22
 
46
- const tabs = useMemo(() => allTabs.filter((tab) => width >= tab.minWidth), [allTabs, width])
23
+ const tabs = useMemo(
24
+ () => allTabs.filter((tab) => tab.minWidth === undefined || width >= tab.minWidth),
25
+ [allTabs, width],
26
+ )
47
27
 
48
- const [activeTab, setActiveTab] = useState<TabOptionProps>(() => tabs[0])
28
+ const [activeKey, setActiveKey] = useState<KeyboardUnitsGroupType | undefined>(() => tabs[0]?.key)
49
29
 
50
- useEffect(() => {
51
- if (!tabs.length) return
52
- const stillVisible = tabs.some((t) => t.key === activeTab?.key)
53
- if (!stillVisible) setActiveTab(tabs[0])
54
- }, [tabs, activeTab?.key])
30
+ const activeTab = useMemo(() => {
31
+ return tabs.find((t) => t?.key && t.key === activeKey) ?? tabs[0]
32
+ }, [tabs, activeKey])
55
33
 
56
- return { tabs, activeTab, setActiveTab }
34
+ return {
35
+ tabs,
36
+ activeTab,
37
+ setActiveTab: (tab: TabOptionProps) => {
38
+ if (isKeyboardUnitsGroupType(tab.key)) {
39
+ setActiveKey(tab.key)
40
+ }
41
+ },
42
+ }
57
43
  }
@@ -1,4 +1,5 @@
1
1
  import { KeyboardGroup, KeyboardKey } from '@magmamath/students-features'
2
+ import { TabOptionProps } from '@magmamath/react-native-ui'
2
3
 
3
4
  export enum SelectedLayout {
4
5
  ALGEBRA = 'algebra',
@@ -16,3 +17,8 @@ export enum KeyboardUnitsGroupType {
16
17
  export type UnitKeyboardGroups = {
17
18
  keys: KeyboardKey[][]
18
19
  } & Omit<KeyboardGroup, 'keys'>
20
+
21
+ export type UnitTab = Omit<TabOptionProps, 'key'> & {
22
+ key: KeyboardUnitsGroupType
23
+ minWidth?: number
24
+ }