@magmamath/students-features 0.9.105 → 0.9.106
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.
- package/.idea/workspace.xml +56 -54
- package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +2 -2
- package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js +2 -2
- package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +2 -2
- package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/Keyboard.js +2 -2
- package/dist/commonjs/features/keyboard/components/Keyboard.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js +1 -6
- package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/constants/constants.js +1 -1
- package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js +19 -3
- package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js.map +1 -1
- package/dist/commonjs/features/keyboard/helpers.js +7 -0
- package/dist/commonjs/features/keyboard/helpers.js.map +1 -1
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js +1 -1
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
- package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +3 -3
- package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js +2 -2
- package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +2 -2
- package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/Keyboard.js +2 -2
- package/dist/module/features/keyboard/components/Keyboard.js.map +1 -1
- package/dist/module/features/keyboard/components/MainLayout/MainLayout.js +2 -7
- package/dist/module/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
- package/dist/module/features/keyboard/constants/constants.js +1 -1
- package/dist/module/features/keyboard/constants/keyboardLayouts.js +18 -3
- package/dist/module/features/keyboard/constants/keyboardLayouts.js.map +1 -1
- package/dist/module/features/keyboard/helpers.js +5 -0
- package/dist/module/features/keyboard/helpers.js.map +1 -1
- package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js +1 -1
- package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/constants/constants.d.ts +1 -1
- package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts +4 -0
- package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/helpers.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/constants/constants.d.ts +1 -1
- package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts +4 -0
- package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/helpers.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/helpers.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/keyboard/components/AlgebraLayout/AlgebraLayout.tsx +4 -3
- package/src/features/keyboard/components/BasicLayout/BasicLayout.tsx +2 -2
- package/src/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.tsx +3 -2
- package/src/features/keyboard/components/Keyboard.tsx +2 -2
- package/src/features/keyboard/components/MainLayout/MainLayout.tsx +2 -6
- package/src/features/keyboard/constants/constants.ts +1 -1
- package/src/features/keyboard/constants/keyboardLayouts.ts +17 -0
- package/src/features/keyboard/helpers.ts +6 -0
- package/src/features/keyboard/types/MathKeysGroups/basicOperators.tsx +1 -1
|
@@ -3,15 +3,16 @@ import { StyleSheet, useWindowDimensions, View } from 'react-native'
|
|
|
3
3
|
import { KeysList } from '../KeysList/KeysList'
|
|
4
4
|
import { KeyboardLayoutProps, KeyboardType } from '../../types/types'
|
|
5
5
|
import { Locale, useText } from '../../../../shared/translation'
|
|
6
|
-
import { MOBILE_LAYOUT_WIDTH } from '../../constants/constants'
|
|
7
6
|
import { getKeyboardGroup } from '../../helpers'
|
|
8
7
|
import { IS_MOBILE } from '@magmamath/react-native-ui'
|
|
8
|
+
import { KEYBOARD_LAYOUTS } from '../../constants/keyboardLayouts'
|
|
9
9
|
|
|
10
10
|
export const BasicPlusPlusLayout = (props: KeyboardLayoutProps) => {
|
|
11
11
|
const t = useText()
|
|
12
12
|
const { width } = useWindowDimensions()
|
|
13
13
|
const locale = t('locale') as Locale
|
|
14
|
-
const isDesktop =
|
|
14
|
+
const isDesktop =
|
|
15
|
+
width > KEYBOARD_LAYOUTS[KeyboardType.BasicPlusPlus].mobileBreakpoint && !IS_MOBILE
|
|
15
16
|
const keysGroup = getKeyboardGroup(
|
|
16
17
|
locale,
|
|
17
18
|
isDesktop ? KeyboardType.BasicPlusPlus : KeyboardType.BasicPlusPlusMobile,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
KEYBOARD_SLIDE_DISTANCE,
|
|
10
10
|
slideInAnimationSettings,
|
|
11
11
|
} from './MainLayout/constants'
|
|
12
|
-
import {
|
|
12
|
+
import { isMobileWidth } from '../helpers'
|
|
13
13
|
|
|
14
14
|
type KeyboardProps = {
|
|
15
15
|
onKeyPress: (key: KeyboardKeyValue) => void
|
|
@@ -31,7 +31,7 @@ export const Keyboard = ({
|
|
|
31
31
|
const slideAnim = useRef(new Animated.Value(KEYBOARD_SLIDE_DISTANCE)).current
|
|
32
32
|
|
|
33
33
|
const { width } = useWindowDimensions()
|
|
34
|
-
const isMobile =
|
|
34
|
+
const isMobile = IS_MOBILE || isMobileWidth(width, characterType)
|
|
35
35
|
const mobileStyles = useMemo(
|
|
36
36
|
() => getLayoutConfigStyles(characterType, isMobile),
|
|
37
37
|
[characterType, isMobile],
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import React, { useEffect, useMemo, useRef, useState, useCallback } from 'react'
|
|
2
|
-
import { Animated, StyleSheet,
|
|
2
|
+
import { Animated, StyleSheet, View } from 'react-native'
|
|
3
3
|
import { SelectOptionColor, IS_MOBILE, IS_WEB } from '@magmamath/react-native-ui'
|
|
4
4
|
import { getLayoutByCharType, isBasicPlusPlusLayout } from '../../constants/keyboardLayouts'
|
|
5
5
|
import { KeyboardKey, KeyboardKeyValue } from '../../types/types'
|
|
6
6
|
import { UnderlinedLayout } from '../UnderlinedLayout/UnderlinedLayout'
|
|
7
|
-
import { MOBILE_LAYOUT_WIDTH } from '../../constants/constants'
|
|
8
7
|
|
|
9
8
|
type LayoutProps = {
|
|
10
9
|
onKeyPress: (key: KeyboardKeyValue) => void
|
|
@@ -27,11 +26,8 @@ export const MainLayout = ({
|
|
|
27
26
|
const fadeAnim = useRef(new Animated.Value(showUnderlinedKeys ? 1 : 0)).current
|
|
28
27
|
const fadeRef = useRef<Animated.CompositeAnimation | null>(null)
|
|
29
28
|
|
|
30
|
-
const { width } = useWindowDimensions()
|
|
31
|
-
const isMobile = width <= MOBILE_LAYOUT_WIDTH || IS_MOBILE
|
|
32
|
-
|
|
33
29
|
const Layout = useMemo(() => getLayoutByCharType(characterType), [characterType])
|
|
34
|
-
const isUnderlinedLayoutVisible = isUnderlinedVisible && !isSecondaryLayoutSelected && !
|
|
30
|
+
const isUnderlinedLayoutVisible = isUnderlinedVisible && !isSecondaryLayoutSelected && !IS_MOBILE
|
|
35
31
|
|
|
36
32
|
const animateFade = useCallback(
|
|
37
33
|
(toValue: number, onComplete?: () => void) => {
|
|
@@ -7,6 +7,7 @@ import { CurrencyBasicLayout } from '../components/BasicLayout/CurrencyBasicLayo
|
|
|
7
7
|
import { UnitsLayout } from '../components/UnitsLayout/UnitsLayout'
|
|
8
8
|
import { BasicPlusPlusLayout } from '../components/BasicPlusPlusLayout/BasicPlusPlusLayout'
|
|
9
9
|
import { MyScriptMathCharacterTypes } from '../../../types/characterTypes'
|
|
10
|
+
import { MOBILE_LAYOUT_WIDTH } from './constants'
|
|
10
11
|
|
|
11
12
|
export const KEYBOARD_LAYOUTS = {
|
|
12
13
|
[KeyboardType.AlgebraAdvanced]: {
|
|
@@ -18,10 +19,12 @@ export const KEYBOARD_LAYOUTS = {
|
|
|
18
19
|
MyScriptMathCharacterTypes.ALGEBRA_GREEK,
|
|
19
20
|
MyScriptMathCharacterTypes.GENERAL_MATH,
|
|
20
21
|
],
|
|
22
|
+
mobileBreakpoint: 1300,
|
|
21
23
|
},
|
|
22
24
|
[KeyboardType.Basic]: {
|
|
23
25
|
Component: BasicLayout,
|
|
24
26
|
characterTypes: [MyScriptMathCharacterTypes.NUMBERS_WHOLE],
|
|
27
|
+
mobileBreakpoint: 990,
|
|
25
28
|
},
|
|
26
29
|
[KeyboardType.BasicPlus]: {
|
|
27
30
|
Component: BasicPlusLayout,
|
|
@@ -56,6 +59,7 @@ export const KEYBOARD_LAYOUTS = {
|
|
|
56
59
|
MyScriptMathCharacterTypes.GEOM_ANGLES,
|
|
57
60
|
MyScriptMathCharacterTypes.GEOM_COORDINATE,
|
|
58
61
|
],
|
|
62
|
+
mobileBreakpoint: 1220,
|
|
59
63
|
},
|
|
60
64
|
}
|
|
61
65
|
|
|
@@ -72,6 +76,19 @@ export function getLayoutByCharType(charType?: number) {
|
|
|
72
76
|
return AlgebraLayout
|
|
73
77
|
}
|
|
74
78
|
|
|
79
|
+
export function getMobileBreakpointByCharType(charType?: number) {
|
|
80
|
+
if (!charType) {
|
|
81
|
+
return KEYBOARD_LAYOUTS[KeyboardType.AlgebraAdvanced].mobileBreakpoint
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
for (const layout of Object.values(KEYBOARD_LAYOUTS)) {
|
|
85
|
+
if (layout.characterTypes.includes(charType)) {
|
|
86
|
+
return 'mobileBreakpoint' in layout ? layout.mobileBreakpoint : MOBILE_LAYOUT_WIDTH
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return KEYBOARD_LAYOUTS[KeyboardType.AlgebraAdvanced].mobileBreakpoint
|
|
90
|
+
}
|
|
91
|
+
|
|
75
92
|
export function isBasicPlusPlusLayout(charType?: number) {
|
|
76
93
|
if (!charType) {
|
|
77
94
|
return true
|
|
@@ -3,6 +3,7 @@ import { KeyboardGroup, KeyboardType } from './types/types'
|
|
|
3
3
|
import { Locale } from '../../shared/translation/types'
|
|
4
4
|
import { MATH_ENTRY_ALGEBRA_KEYBOARD_GROUP } from './components/AlgebraLayout/keyboardGroups'
|
|
5
5
|
import { IS_WEB } from '@magmamath/react-native-ui'
|
|
6
|
+
import { getMobileBreakpointByCharType } from './constants/keyboardLayouts'
|
|
6
7
|
|
|
7
8
|
export function getKeyboardGroup(locale: Locale, type: KeyboardType): KeyboardGroup {
|
|
8
9
|
return KEYBOARD_GROUPS_BY_LOCALE[locale]?.[type] ?? MATH_ENTRY_ALGEBRA_KEYBOARD_GROUP
|
|
@@ -16,3 +17,8 @@ export const getIsIpadOrIphoneDevice = () => {
|
|
|
16
17
|
const isIpadOS = navigator?.maxTouchPoints > 2 && /MacIntel/.test(navigator.platform)
|
|
17
18
|
return isIOS || isIpadOS
|
|
18
19
|
}
|
|
20
|
+
|
|
21
|
+
export const isMobileWidth = (width: number, characterType?: number) => {
|
|
22
|
+
const layoutWidth = getMobileBreakpointByCharType(characterType)
|
|
23
|
+
return width <= layoutWidth
|
|
24
|
+
}
|