@magmamath/students-features 0.5.6 → 0.5.7-rc-0
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/dist/commonjs/features/celebrations/components/Spark.js +11 -8
- package/dist/commonjs/features/celebrations/components/Spark.js.map +1 -1
- package/dist/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js +6 -4
- package/dist/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js.map +1 -1
- package/dist/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.js +6 -4
- package/dist/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.js.map +1 -1
- package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js +21 -42
- package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -1
- package/dist/commonjs/features/problemSelector/components/ProblemSelector.js +43 -0
- package/dist/commonjs/features/problemSelector/components/ProblemSelector.js.map +1 -0
- package/dist/commonjs/features/problemSelector/components/ProblemSelectorButton.js +68 -0
- package/dist/commonjs/features/problemSelector/components/ProblemSelectorButton.js.map +1 -0
- package/dist/commonjs/features/problemSelector/constants.js +220 -0
- package/dist/commonjs/features/problemSelector/constants.js.map +1 -0
- package/dist/commonjs/features/problemSelector/index.js +20 -0
- package/dist/commonjs/features/problemSelector/index.js.map +1 -0
- package/dist/commonjs/features/problemSelector/types.js +6 -0
- package/dist/commonjs/features/problemSelector/types.js.map +1 -0
- package/dist/commonjs/index.js +12 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/shared/icons/LockIcon.js +31 -0
- package/dist/commonjs/shared/icons/LockIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/Pi.js +3 -1
- package/dist/commonjs/shared/icons/Pi.js.map +1 -1
- package/dist/commonjs/shared/icons/Valentine.js +3 -1
- package/dist/commonjs/shared/icons/Valentine.js.map +1 -1
- package/dist/commonjs/shared/icons/Winter.js +3 -1
- package/dist/commonjs/shared/icons/Winter.js.map +1 -1
- package/dist/module/features/celebrations/components/Spark.js +11 -8
- package/dist/module/features/celebrations/components/Spark.js.map +1 -1
- package/dist/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js +6 -4
- package/dist/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js.map +1 -1
- package/dist/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.js +6 -4
- package/dist/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.js.map +1 -1
- package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js +22 -43
- package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -1
- package/dist/module/features/problemSelector/components/ProblemSelector.js +36 -0
- package/dist/module/features/problemSelector/components/ProblemSelector.js.map +1 -0
- package/dist/module/features/problemSelector/components/ProblemSelectorButton.js +62 -0
- package/dist/module/features/problemSelector/components/ProblemSelectorButton.js.map +1 -0
- package/dist/module/features/problemSelector/constants.js +216 -0
- package/dist/module/features/problemSelector/constants.js.map +1 -0
- package/dist/module/features/problemSelector/index.js +5 -0
- package/dist/module/features/problemSelector/index.js.map +1 -0
- package/dist/module/features/problemSelector/types.js +4 -0
- package/dist/module/features/problemSelector/types.js.map +1 -0
- package/dist/module/index.js +1 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/shared/icons/LockIcon.js +23 -0
- package/dist/module/shared/icons/LockIcon.js.map +1 -0
- package/dist/module/shared/icons/Pi.js +3 -1
- package/dist/module/shared/icons/Pi.js.map +1 -1
- package/dist/module/shared/icons/Valentine.js +3 -1
- package/dist/module/shared/icons/Valentine.js.map +1 -1
- package/dist/module/shared/icons/Winter.js +3 -1
- package/dist/module/shared/icons/Winter.js.map +1 -1
- package/dist/typescript/commonjs/features/celebrations/components/Spark.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts +1 -1
- package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts +1 -1
- package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/problemSelector/components/ProblemSelector.d.ts +8 -0
- package/dist/typescript/commonjs/features/problemSelector/components/ProblemSelector.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/problemSelector/components/ProblemSelectorButton.d.ts +4 -0
- package/dist/typescript/commonjs/features/problemSelector/components/ProblemSelectorButton.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/problemSelector/constants.d.ts +22 -0
- package/dist/typescript/commonjs/features/problemSelector/constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/problemSelector/index.d.ts +4 -0
- package/dist/typescript/commonjs/features/problemSelector/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/problemSelector/types.d.ts +11 -0
- package/dist/typescript/commonjs/features/problemSelector/types.d.ts.map +1 -0
- package/dist/typescript/commonjs/index.d.ts +1 -0
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/icons/LockIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/LockIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/Pi.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/icons/Valentine.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/icons/Winter.d.ts.map +1 -1
- package/dist/typescript/module/features/celebrations/components/Spark.d.ts.map +1 -1
- package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts +1 -1
- package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts.map +1 -1
- package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts +1 -1
- package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts.map +1 -1
- package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -1
- package/dist/typescript/module/features/problemSelector/components/ProblemSelector.d.ts +8 -0
- package/dist/typescript/module/features/problemSelector/components/ProblemSelector.d.ts.map +1 -0
- package/dist/typescript/module/features/problemSelector/components/ProblemSelectorButton.d.ts +4 -0
- package/dist/typescript/module/features/problemSelector/components/ProblemSelectorButton.d.ts.map +1 -0
- package/dist/typescript/module/features/problemSelector/constants.d.ts +22 -0
- package/dist/typescript/module/features/problemSelector/constants.d.ts.map +1 -0
- package/dist/typescript/module/features/problemSelector/index.d.ts +4 -0
- package/dist/typescript/module/features/problemSelector/index.d.ts.map +1 -0
- package/dist/typescript/module/features/problemSelector/types.d.ts +11 -0
- package/dist/typescript/module/features/problemSelector/types.d.ts.map +1 -0
- package/dist/typescript/module/index.d.ts +1 -0
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/dist/typescript/module/shared/icons/LockIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/LockIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/Pi.d.ts.map +1 -1
- package/dist/typescript/module/shared/icons/Valentine.d.ts.map +1 -1
- package/dist/typescript/module/shared/icons/Winter.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/features/celebrations/components/Spark.tsx +17 -13
- package/src/features/endOfAssignment/components/Modal/assets/SunrisingIcon.tsx +76 -75
- package/src/features/endOfAssignment/components/Modal/assets/TrophyIcon.tsx +26 -25
- package/src/features/endOfAssignment/components/NoAnswer/NoAnswer.tsx +25 -52
- package/src/features/problemSelector/components/ProblemSelector.tsx +37 -0
- package/src/features/problemSelector/components/ProblemSelectorButton.tsx +77 -0
- package/src/features/problemSelector/constants.ts +216 -0
- package/src/features/problemSelector/index.ts +3 -0
- package/src/features/problemSelector/types.ts +13 -0
- package/src/index.ts +1 -0
- package/src/shared/icons/LockIcon.tsx +16 -0
- package/src/shared/icons/Pi.tsx +4 -1
- package/src/shared/icons/Valentine.tsx +4 -1
- package/src/shared/icons/Winter.tsx +5 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PROBLEM_SELECTOR_BUTTON_STATE } from './constants';
|
|
2
|
+
export type ProblemSelectorButtonState = (typeof PROBLEM_SELECTOR_BUTTON_STATE)[keyof typeof PROBLEM_SELECTOR_BUTTON_STATE];
|
|
3
|
+
export type ProblemSelectorButtonProps = {
|
|
4
|
+
key: string;
|
|
5
|
+
text: string;
|
|
6
|
+
state: ProblemSelectorButtonState;
|
|
7
|
+
locked: boolean;
|
|
8
|
+
onClick: () => void;
|
|
9
|
+
badgeValue?: number;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/problemSelector/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAA;AAE3D,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAA;AAEpF,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,0BAA0B,CAAA;IACjC,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LockIcon.d.ts","sourceRoot":"","sources":["../../../../../src/shared/icons/LockIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,eAAO,MAAM,QAAQ,6BAA2D,SAAS,sBASxF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pi.d.ts","sourceRoot":"","sources":["../../../../../src/shared/icons/Pi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAU,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE9D,iBAAS,EAAE,CAAC,EAAE,IAAS,EAAE,KAAwB,EAAE,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Pi.d.ts","sourceRoot":"","sources":["../../../../../src/shared/icons/Pi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAU,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE9D,iBAAS,EAAE,CAAC,EAAE,IAAS,EAAE,KAAwB,EAAE,EAAE,SAAS,qBAY7D;AAED,eAAe,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Valentine.d.ts","sourceRoot":"","sources":["../../../../../src/shared/icons/Valentine.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAU,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE9D,iBAAS,SAAS,CAAC,EAAE,IAAS,EAAE,KAAwB,EAAE,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Valentine.d.ts","sourceRoot":"","sources":["../../../../../src/shared/icons/Valentine.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAU,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE9D,iBAAS,SAAS,CAAC,EAAE,IAAS,EAAE,KAAwB,EAAE,EAAE,SAAS,qBAYpE;AAED,eAAe,SAAS,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Winter.d.ts","sourceRoot":"","sources":["../../../../../src/shared/icons/Winter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAU,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE9D,iBAAS,MAAM,CAAC,EAAE,IAAS,EAAE,KAAwB,EAAE,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Winter.d.ts","sourceRoot":"","sources":["../../../../../src/shared/icons/Winter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAU,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE9D,iBAAS,MAAM,CAAC,EAAE,IAAS,EAAE,KAAwB,EAAE,EAAE,SAAS,qBAejE;AAED,eAAe,MAAM,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magmamath/students-features",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.7-rc-0",
|
|
4
4
|
"description": "Magmamath features library",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"react-native-svg": "^15.10.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@magmamath/react-native-ui": "0.4.
|
|
32
|
+
"@magmamath/react-native-ui": "0.4.17",
|
|
33
33
|
"@react-native/eslint-config": "^0.73.1",
|
|
34
34
|
"@release-it/conventional-changelog": "^9.0.2",
|
|
35
35
|
"@types/jest": "^29.5.5",
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { IconProps } from '@magmamath/react-native-ui'
|
|
2
|
-
import React from 'react'
|
|
3
|
-
import { View } from 'react-native'
|
|
1
|
+
import { IconProps } from '@magmamath/react-native-ui'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { View } from 'react-native'
|
|
4
4
|
|
|
5
|
-
export const Spark = ({ size = 10, color }: IconProps) =>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
export const Spark = ({ size = 10, color }: IconProps) => {
|
|
6
|
+
const actualSize = typeof size === 'number' ? size : 0
|
|
7
|
+
|
|
8
|
+
return (
|
|
9
|
+
<View
|
|
10
|
+
style={{
|
|
11
|
+
width: actualSize,
|
|
12
|
+
height: actualSize,
|
|
13
|
+
backgroundColor: color,
|
|
14
|
+
borderRadius: actualSize / 2,
|
|
15
|
+
}}
|
|
16
|
+
/>
|
|
17
|
+
)
|
|
18
|
+
}
|
|
@@ -2,193 +2,194 @@ import * as React from 'react'
|
|
|
2
2
|
import { IconProps } from '@magmamath/react-native-ui'
|
|
3
3
|
import Svg, { G, Path, Defs, LinearGradient, Stop } from 'react-native-svg'
|
|
4
4
|
|
|
5
|
-
export const SunrisingIcon = (
|
|
6
|
-
const
|
|
5
|
+
export const SunrisingIcon = ({ size }: IconProps) => {
|
|
6
|
+
const actualSize = typeof size === 'number' ? size : 0
|
|
7
|
+
const height = actualSize * 0.606
|
|
7
8
|
|
|
8
9
|
return (
|
|
9
|
-
<Svg width={
|
|
10
|
+
<Svg width={size} height={height} viewBox="0 0 909 551" fill="none">
|
|
10
11
|
<G opacity={0.1}>
|
|
11
12
|
<Path
|
|
12
|
-
d=
|
|
13
|
-
fill=
|
|
13
|
+
d="M164.04-598.854a893.984 893.984 0 01222.319 28.085L164.04 295.106v-893.96z"
|
|
14
|
+
fill="url(#paint0_linear_3505_1308)"
|
|
14
15
|
/>
|
|
15
16
|
<Path
|
|
16
|
-
d=
|
|
17
|
-
fill=
|
|
17
|
+
d="M-282.94-479.086a893.954 893.954 0 01206.577-86.837L164.04 295.106l-446.98-774.192z"
|
|
18
|
+
fill="url(#paint1_linear_3505_1308)"
|
|
18
19
|
/>
|
|
19
20
|
<Path
|
|
20
|
-
d=
|
|
21
|
-
fill=
|
|
21
|
+
d="M-610.152-151.874A893.997 893.997 0 01-474.67-330.365l638.71 625.471-774.192-446.98z"
|
|
22
|
+
fill="url(#paint2_linear_3505_1308)"
|
|
22
23
|
/>
|
|
23
24
|
<Path
|
|
24
|
-
d=
|
|
25
|
-
fill=
|
|
25
|
+
d="M-729.92 295.106a893.938 893.938 0 0128.086-222.319L164.04 295.106h-893.96z"
|
|
26
|
+
fill="url(#paint3_linear_3505_1308)"
|
|
26
27
|
/>
|
|
27
28
|
<Path
|
|
28
|
-
d=
|
|
29
|
-
fill=
|
|
29
|
+
d="M-610.152 742.086a893.994 893.994 0 01-86.837-206.577L164.04 295.106l-774.192 446.98z"
|
|
30
|
+
fill="url(#paint4_linear_3505_1308)"
|
|
30
31
|
/>
|
|
31
32
|
<Path
|
|
32
|
-
d=
|
|
33
|
-
fill=
|
|
33
|
+
d="M-282.94 1069.3a894.157 894.157 0 01-178.491-135.484l625.471-638.71-446.98 774.194z"
|
|
34
|
+
fill="url(#paint5_linear_3505_1308)"
|
|
34
35
|
/>
|
|
35
36
|
<Path
|
|
36
|
-
d=
|
|
37
|
-
fill=
|
|
37
|
+
d="M611.02-479.086a893.96 893.96 0 01178.491 135.482L164.04 295.106l446.98-774.192z"
|
|
38
|
+
fill="url(#paint6_linear_3505_1308)"
|
|
38
39
|
/>
|
|
39
40
|
<Path
|
|
40
|
-
d=
|
|
41
|
-
fill=
|
|
41
|
+
d="M938.232-151.874a894.096 894.096 0 0186.838 206.577L164.04 295.106l774.192-446.98z"
|
|
42
|
+
fill="url(#paint7_linear_3505_1308)"
|
|
42
43
|
/>
|
|
43
44
|
<Path
|
|
44
|
-
d=
|
|
45
|
-
fill=
|
|
45
|
+
d="M1058 295.106c0 74.991-9.44 149.684-28.09 222.319L164.04 295.106H1058z"
|
|
46
|
+
fill="url(#paint8_linear_3505_1308)"
|
|
46
47
|
/>
|
|
47
48
|
<Path
|
|
48
|
-
d=
|
|
49
|
-
fill=
|
|
49
|
+
d="M938.232 742.086A893.96 893.96 0 01802.75 920.577L164.04 295.106l774.192 446.98z"
|
|
50
|
+
fill="url(#paint9_linear_3505_1308)"
|
|
50
51
|
/>
|
|
51
52
|
<Path
|
|
52
|
-
d=
|
|
53
|
-
fill=
|
|
53
|
+
d="M611.02 1069.3a893.885 893.885 0 01-206.577 86.83L164.04 295.106 611.02 1069.3z"
|
|
54
|
+
fill="url(#paint10_linear_3505_1308)"
|
|
54
55
|
/>
|
|
55
56
|
<Path
|
|
56
|
-
d=
|
|
57
|
-
fill=
|
|
57
|
+
d="M164.04 1189.07a893.941 893.941 0 01-222.319-28.09L164.04 295.106v893.964z"
|
|
58
|
+
fill="url(#paint11_linear_3505_1308)"
|
|
58
59
|
/>
|
|
59
60
|
</G>
|
|
60
61
|
<Defs>
|
|
61
62
|
<LinearGradient
|
|
62
|
-
id=
|
|
63
|
+
id="paint0_linear_3505_1308"
|
|
63
64
|
x1={164.04}
|
|
64
65
|
y1={383.036}
|
|
65
66
|
x2={930.076}
|
|
66
67
|
y2={383.036}
|
|
67
|
-
gradientUnits=
|
|
68
|
+
gradientUnits="userSpaceOnUse"
|
|
68
69
|
>
|
|
69
|
-
<Stop stopColor=
|
|
70
|
-
<Stop offset={1} stopColor=
|
|
70
|
+
<Stop stopColor="#FF245F" />
|
|
71
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
71
72
|
</LinearGradient>
|
|
72
73
|
<LinearGradient
|
|
73
|
-
id=
|
|
74
|
+
id="paint1_linear_3505_1308"
|
|
74
75
|
x1={164.04}
|
|
75
76
|
y1={383.036}
|
|
76
77
|
x2={930.076}
|
|
77
78
|
y2={383.036}
|
|
78
|
-
gradientUnits=
|
|
79
|
+
gradientUnits="userSpaceOnUse"
|
|
79
80
|
>
|
|
80
|
-
<Stop stopColor=
|
|
81
|
-
<Stop offset={1} stopColor=
|
|
81
|
+
<Stop stopColor="#FF245F" />
|
|
82
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
82
83
|
</LinearGradient>
|
|
83
84
|
<LinearGradient
|
|
84
|
-
id=
|
|
85
|
+
id="paint2_linear_3505_1308"
|
|
85
86
|
x1={164.04}
|
|
86
87
|
y1={383.036}
|
|
87
88
|
x2={930.076}
|
|
88
89
|
y2={383.036}
|
|
89
|
-
gradientUnits=
|
|
90
|
+
gradientUnits="userSpaceOnUse"
|
|
90
91
|
>
|
|
91
|
-
<Stop stopColor=
|
|
92
|
-
<Stop offset={1} stopColor=
|
|
92
|
+
<Stop stopColor="#FF245F" />
|
|
93
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
93
94
|
</LinearGradient>
|
|
94
95
|
<LinearGradient
|
|
95
|
-
id=
|
|
96
|
+
id="paint3_linear_3505_1308"
|
|
96
97
|
x1={164.04}
|
|
97
98
|
y1={383.036}
|
|
98
99
|
x2={930.076}
|
|
99
100
|
y2={383.036}
|
|
100
|
-
gradientUnits=
|
|
101
|
+
gradientUnits="userSpaceOnUse"
|
|
101
102
|
>
|
|
102
|
-
<Stop stopColor=
|
|
103
|
-
<Stop offset={1} stopColor=
|
|
103
|
+
<Stop stopColor="#FF245F" />
|
|
104
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
104
105
|
</LinearGradient>
|
|
105
106
|
<LinearGradient
|
|
106
|
-
id=
|
|
107
|
+
id="paint4_linear_3505_1308"
|
|
107
108
|
x1={164.04}
|
|
108
109
|
y1={383.036}
|
|
109
110
|
x2={930.076}
|
|
110
111
|
y2={383.036}
|
|
111
|
-
gradientUnits=
|
|
112
|
+
gradientUnits="userSpaceOnUse"
|
|
112
113
|
>
|
|
113
|
-
<Stop stopColor=
|
|
114
|
-
<Stop offset={1} stopColor=
|
|
114
|
+
<Stop stopColor="#FF245F" />
|
|
115
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
115
116
|
</LinearGradient>
|
|
116
117
|
<LinearGradient
|
|
117
|
-
id=
|
|
118
|
+
id="paint5_linear_3505_1308"
|
|
118
119
|
x1={164.04}
|
|
119
120
|
y1={383.036}
|
|
120
121
|
x2={930.076}
|
|
121
122
|
y2={383.036}
|
|
122
|
-
gradientUnits=
|
|
123
|
+
gradientUnits="userSpaceOnUse"
|
|
123
124
|
>
|
|
124
|
-
<Stop stopColor=
|
|
125
|
-
<Stop offset={1} stopColor=
|
|
125
|
+
<Stop stopColor="#FF245F" />
|
|
126
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
126
127
|
</LinearGradient>
|
|
127
128
|
<LinearGradient
|
|
128
|
-
id=
|
|
129
|
+
id="paint6_linear_3505_1308"
|
|
129
130
|
x1={164.04}
|
|
130
131
|
y1={383.036}
|
|
131
132
|
x2={930.076}
|
|
132
133
|
y2={383.036}
|
|
133
|
-
gradientUnits=
|
|
134
|
+
gradientUnits="userSpaceOnUse"
|
|
134
135
|
>
|
|
135
|
-
<Stop stopColor=
|
|
136
|
-
<Stop offset={1} stopColor=
|
|
136
|
+
<Stop stopColor="#FF245F" />
|
|
137
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
137
138
|
</LinearGradient>
|
|
138
139
|
<LinearGradient
|
|
139
|
-
id=
|
|
140
|
+
id="paint7_linear_3505_1308"
|
|
140
141
|
x1={164.04}
|
|
141
142
|
y1={383.036}
|
|
142
143
|
x2={930.076}
|
|
143
144
|
y2={383.036}
|
|
144
|
-
gradientUnits=
|
|
145
|
+
gradientUnits="userSpaceOnUse"
|
|
145
146
|
>
|
|
146
|
-
<Stop stopColor=
|
|
147
|
-
<Stop offset={1} stopColor=
|
|
147
|
+
<Stop stopColor="#FF245F" />
|
|
148
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
148
149
|
</LinearGradient>
|
|
149
150
|
<LinearGradient
|
|
150
|
-
id=
|
|
151
|
+
id="paint8_linear_3505_1308"
|
|
151
152
|
x1={164.04}
|
|
152
153
|
y1={383.036}
|
|
153
154
|
x2={930.076}
|
|
154
155
|
y2={383.036}
|
|
155
|
-
gradientUnits=
|
|
156
|
+
gradientUnits="userSpaceOnUse"
|
|
156
157
|
>
|
|
157
|
-
<Stop stopColor=
|
|
158
|
-
<Stop offset={1} stopColor=
|
|
158
|
+
<Stop stopColor="#FF245F" />
|
|
159
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
159
160
|
</LinearGradient>
|
|
160
161
|
<LinearGradient
|
|
161
|
-
id=
|
|
162
|
+
id="paint9_linear_3505_1308"
|
|
162
163
|
x1={164.04}
|
|
163
164
|
y1={383.036}
|
|
164
165
|
x2={930.076}
|
|
165
166
|
y2={383.036}
|
|
166
|
-
gradientUnits=
|
|
167
|
+
gradientUnits="userSpaceOnUse"
|
|
167
168
|
>
|
|
168
|
-
<Stop stopColor=
|
|
169
|
-
<Stop offset={1} stopColor=
|
|
169
|
+
<Stop stopColor="#FF245F" />
|
|
170
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
170
171
|
</LinearGradient>
|
|
171
172
|
<LinearGradient
|
|
172
|
-
id=
|
|
173
|
+
id="paint10_linear_3505_1308"
|
|
173
174
|
x1={164.04}
|
|
174
175
|
y1={383.036}
|
|
175
176
|
x2={930.076}
|
|
176
177
|
y2={383.036}
|
|
177
|
-
gradientUnits=
|
|
178
|
+
gradientUnits="userSpaceOnUse"
|
|
178
179
|
>
|
|
179
|
-
<Stop stopColor=
|
|
180
|
-
<Stop offset={1} stopColor=
|
|
180
|
+
<Stop stopColor="#FF245F" />
|
|
181
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
181
182
|
</LinearGradient>
|
|
182
183
|
<LinearGradient
|
|
183
|
-
id=
|
|
184
|
+
id="paint11_linear_3505_1308"
|
|
184
185
|
x1={164.04}
|
|
185
186
|
y1={383.036}
|
|
186
187
|
x2={930.076}
|
|
187
188
|
y2={383.036}
|
|
188
|
-
gradientUnits=
|
|
189
|
+
gradientUnits="userSpaceOnUse"
|
|
189
190
|
>
|
|
190
|
-
<Stop stopColor=
|
|
191
|
-
<Stop offset={1} stopColor=
|
|
191
|
+
<Stop stopColor="#FF245F" />
|
|
192
|
+
<Stop offset={1} stopColor="#FF7917" stopOpacity={0} />
|
|
192
193
|
</LinearGradient>
|
|
193
194
|
</Defs>
|
|
194
195
|
</Svg>
|
|
@@ -2,60 +2,61 @@ import { IconProps } from '@magmamath/react-native-ui'
|
|
|
2
2
|
import * as React from 'react'
|
|
3
3
|
import Svg, { Path } from 'react-native-svg'
|
|
4
4
|
|
|
5
|
-
export const TrophyIcon = (
|
|
6
|
-
const
|
|
5
|
+
export const TrophyIcon = ({ size }: IconProps) => {
|
|
6
|
+
const actualSize = typeof size === 'number' ? size : 0
|
|
7
|
+
const height = actualSize * 0.982
|
|
7
8
|
|
|
8
9
|
return (
|
|
9
|
-
<Svg width={
|
|
10
|
+
<Svg width={size} height={height} viewBox="0 0 466 458" fill="none">
|
|
10
11
|
<Path
|
|
11
|
-
d=
|
|
12
|
-
fill=
|
|
12
|
+
d="M258.454 244.45l-5.731 32.767 16.384 2.86c8.047 1.407 15.796 2.106 23.222 2.106 15.697.011 29.985-3.137 42.766-9.389 6.728-3.292 13.025-7.438 18.9-12.449 44.672-38.12 50.247-115.859 49.604-158.813-.288-18.467-9.466-35.848-24.575-46.49-9.355-6.606-20.23-10.209-31.348-10.575a57.996 57.996 0 00-17.935 2.206c-14.355 4.09-26.36 13.38-33.875 25.994l-32.379-14.332L250.03 88.75l39.162 17.326c6.274 2.771 13.247 2.916 19.632.388 6.374-2.516 11.373-7.382 14.055-13.7a24.56 24.56 0 0115.974-14.112c2.993-.853 6.052-1.13 9.056-.853a24.578 24.578 0 0111.961 4.422c6.44 4.534 10.353 11.95 10.475 19.82 1.164 76.841-18.822 112.224-32.024 127.144-2.195 2.494-4.213 4.412-5.909 5.864-14.632 12.47-33.465 16.483-57.586 12.271l-16.372-2.871zM37.623 282.187c7.429 0 15.173-.703 23.223-2.111l16.379-2.864-5.73-32.757-16.378 2.865c-24.126 4.221-42.953.202-57.575-12.274-11.858-10.119-39.295-43.336-37.936-133.006.119-7.871 4.036-15.28 10.476-19.82a24.601 24.601 0 0121.015-3.57A24.606 24.606 0 017.075 92.764c2.683 6.318 7.675 11.186 14.058 13.709 6.384 2.522 13.355 2.38 19.63-.396l39.152-17.329-13.46-30.41-32.37 14.328C26.57 60.055 14.57 50.762.213 46.67c-16.936-4.828-34.901-1.777-49.293 8.369-15.102 10.647-24.286 28.03-24.565 46.498-.652 42.947 4.926 120.686 49.6 158.806 17.036 14.535 37.71 21.844 61.668 21.844z"
|
|
13
|
+
fill="#FFD690"
|
|
13
14
|
/>
|
|
14
15
|
<Path
|
|
15
16
|
opacity={0.1}
|
|
16
|
-
d=
|
|
17
|
-
fill=
|
|
17
|
+
d="M335.095 272.795c6.728-3.293 13.025-7.438 18.9-12.449 44.672-38.121 50.247-115.859 49.604-158.813-.288-18.467-9.466-35.848-24.575-46.49-9.355-6.606-20.23-10.209-31.348-10.575 3.326 3.691 14.3 18.057.233 33.332a24.578 24.578 0 0111.961 4.423c6.44 4.534 10.353 11.95 10.475 19.82 1.164 76.84-18.822 112.223-32.024 127.144 0 0 21.659 24.497-3.226 43.608z"
|
|
18
|
+
fill="#D25B00"
|
|
18
19
|
/>
|
|
19
20
|
<Path
|
|
20
|
-
d=
|
|
21
|
-
fill=
|
|
21
|
+
d="M26.153 202.82L46.65 26.089a11.505 11.505 0 0111.429-10.18h213.797a11.504 11.504 0 0111.428 10.18l20.495 176.731c4.463 38.483-10.944 76.387-39.056 96.086l-8.179 5.73c-15.466 10.838-32.135 18.807-49.434 23.744-11.86 3.386-19.699 16.816-18.043 31.209l5.7 49.527h-59.619l5.7-49.527c1.656-14.393-6.182-27.825-18.043-31.209-17.299-4.937-33.967-12.905-49.434-23.744l-8.178-5.73c-28.115-19.699-43.522-57.604-39.059-96.086z"
|
|
22
|
+
fill="#FFD690"
|
|
22
23
|
/>
|
|
23
24
|
<Path
|
|
24
25
|
opacity={0.1}
|
|
25
|
-
d=
|
|
26
|
-
fill=
|
|
26
|
+
d="M169.03 359.583l1.752 36.868h22.546l-4.245-36.868c-1.652-14.388 6.185-27.823 18.046-31.203 17.293-4.933 33.964-12.903 49.428-23.744l8.18-5.731c28.112-19.698 43.52-57.597 39.063-96.084L283.299 26.086a11.505 11.505 0 00-11.429-10.18h-50.531l12.193 186.914c2.505 38.487-6.152 76.386-21.959 96.084l-4.6 5.731c-8.702 10.841-18.068 18.811-27.801 23.743-6.661 3.382-11.073 16.817-10.142 31.205z"
|
|
27
|
+
fill="#D25B00"
|
|
27
28
|
/>
|
|
28
29
|
<Path
|
|
29
|
-
d=
|
|
30
|
-
fill=
|
|
30
|
+
d="M63.166 437.528l203.607-4.774v-6.731c0-16.335-13.295-29.576-29.63-29.576H92.742c-16.335 0-29.576 13.241-29.576 29.576v11.505z"
|
|
31
|
+
fill="#FFD690"
|
|
31
32
|
/>
|
|
32
33
|
<Path
|
|
33
34
|
opacity={0.1}
|
|
34
|
-
d=
|
|
35
|
-
fill=
|
|
35
|
+
d="M171.477 396.447c16.328 0 29.574 13.247 29.574 29.575v7.907l65.722-.857v-7.05c0-16.328-13.246-29.575-29.574-29.575h-65.722z"
|
|
36
|
+
fill="#D25B00"
|
|
36
37
|
/>
|
|
37
38
|
<Path
|
|
38
|
-
d=
|
|
39
|
-
fill=
|
|
39
|
+
d="M209.405 432.82c15.086 0 27.324 12.238 27.324 27.336v100.01h42.122c8.43 0 15.264-6.834 15.264-15.264v-84.746c0-15.097-12.239-27.336-27.335-27.336h-57.375z"
|
|
40
|
+
fill="#2488BB"
|
|
40
41
|
/>
|
|
41
42
|
<Path
|
|
42
43
|
opacity={0.5}
|
|
43
|
-
d=
|
|
44
|
-
fill=
|
|
44
|
+
d="M35.846 543.408a8.835 8.835 0 1017.668 0v-88.343c0-6.569 1.263-10.538 2.59-13.251 1.325-2.713 5.889-7.362 13.25-8.834H66.41c-5.89 0-13.567 0-20.614 5.889-6.683 5.586-9.95 13.376-9.95 22.086v82.453z"
|
|
45
|
+
fill="#fff"
|
|
45
46
|
/>
|
|
46
47
|
<Path
|
|
47
|
-
d=
|
|
48
|
-
fill=
|
|
48
|
+
d="M35.837 460.156v84.489c0 8.57 6.912 15.518 15.483 15.518H278.85c8.43 0 15.264-6.833 15.264-15.263v-84.744c0-15.097-12.239-27.336-27.335-27.336H63.173c-15.097 0-27.336 12.239-27.336 27.336z"
|
|
49
|
+
fill="#AAD5EF"
|
|
49
50
|
/>
|
|
50
51
|
<Path
|
|
51
52
|
opacity={0.1}
|
|
52
|
-
d=
|
|
53
|
-
fill=
|
|
53
|
+
d="M208.151 432.762c15.309 0 27.727 12.418 27.727 27.739l.004 33.137h42.744c8.555 0 15.489-6.934 15.489-15.489l-.003-17.648c0-15.32-12.419-27.739-27.739-27.739h-58.222z"
|
|
54
|
+
fill="#D25B00"
|
|
54
55
|
/>
|
|
55
56
|
<Path
|
|
56
57
|
opacity={0.3}
|
|
57
|
-
d=
|
|
58
|
-
fill=
|
|
58
|
+
d="M73.782 17.1c-1.8.654-4.135 2.151-6.083 4.197-2.014 2.118-2.78 3.928-2.901 4.848-3.966 30.145-7.066 56.336-10.696 87.003-3.112 26.288-9.844 72.335-12.788 92.948-2.944 20.613-2.944 23.442-2.944 35.337 0 22.086 10.364 42.197 10.364 42.197-4.634-5.04-14.077-23.056-15.589-26.678-5.247-12.574-9.599-33.753-7.343-51.809 4.73-37.865 7.788-67.529 10.907-93.864 5.03-41.445 4.877-42.092 8.977-77.441 1.785-15.392 1.08-18.069 13.976-18.069h18.25c-1.451.417-2.836.86-4.13 1.33zM35.846 543.249a8.834 8.834 0 008.834 8.834 8.834 8.834 0 008.834-8.834v-88.343c0-6.57 1.263-10.538 2.59-13.251 1.325-2.713 5.889-7.362 13.25-8.835 0 0-1.158-.003-2.94-.003-13.712 0-13.571.004-20.618 5.893-6.683 5.586-9.95 13.376-9.95 22.086v82.453z"
|
|
59
|
+
fill="#fff"
|
|
59
60
|
/>
|
|
60
61
|
</Svg>
|
|
61
62
|
)
|
|
@@ -5,7 +5,6 @@ import { useUnit } from 'effector-react'
|
|
|
5
5
|
import {
|
|
6
6
|
Button,
|
|
7
7
|
ButtonColor,
|
|
8
|
-
ButtonSize,
|
|
9
8
|
ButtonVariant,
|
|
10
9
|
COLORS,
|
|
11
10
|
SPACING,
|
|
@@ -14,6 +13,7 @@ import {
|
|
|
14
13
|
|
|
15
14
|
import { EOAModalContentProps } from '../../types'
|
|
16
15
|
import { NoAnswerContent } from './NoAnswerContent'
|
|
16
|
+
import { PracticeButton } from '../../ui/PracticeButton'
|
|
17
17
|
import { useKeyBoard } from '../../../../shared/hooks/useKeyboard'
|
|
18
18
|
import { KeyboardKeys } from '../../../../lib/constants'
|
|
19
19
|
|
|
@@ -22,49 +22,17 @@ export const NoAnswer = ({ model, textContent, onPracticePress }: EOAModalConten
|
|
|
22
22
|
|
|
23
23
|
const { stats, isExam, user } = popUpData ?? {}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{
|
|
28
|
-
text: textContent.leftButtonText ?? '',
|
|
29
|
-
colorScheme: isExam ? ButtonColor.PURPLE : ButtonColor.BLUE,
|
|
30
|
-
onPress: () => model.hidePopUpAndLeave(),
|
|
31
|
-
},
|
|
32
|
-
]
|
|
25
|
+
const buttonColorScheme = isExam ? ButtonColor.YELLOW : ButtonColor.BLUE
|
|
26
|
+
const practiceButtonVisible = user?.practiceButtonVisible && (!isExam || !!user?.practiceMode)
|
|
33
27
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
colorScheme: ButtonColor.BLUE,
|
|
38
|
-
onPress: () => {
|
|
39
|
-
model.goToFirstProblemPressed()
|
|
40
|
-
model.hidePopUp()
|
|
41
|
-
},
|
|
42
|
-
})
|
|
43
|
-
return buttons
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const isPracticeAvailable = !!user?.practiceMode && user?.practiceButtonVisible
|
|
47
|
-
|
|
48
|
-
if (isPracticeAvailable) {
|
|
49
|
-
buttons.push({
|
|
50
|
-
text: textContent.rightButtonText ?? '',
|
|
51
|
-
colorScheme: ButtonColor.YELLOW,
|
|
52
|
-
onPress: () => {
|
|
53
|
-
onPracticePress?.()
|
|
54
|
-
model.hidePopUp()
|
|
55
|
-
},
|
|
56
|
-
})
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return buttons
|
|
28
|
+
const handlePrimaryButtonPress = () => {
|
|
29
|
+
isExam ? onPracticePress?.() : model.goToFirstProblemPressed()
|
|
30
|
+
model.hidePopUp()
|
|
60
31
|
}
|
|
61
32
|
|
|
62
|
-
const buttons = getButtons()
|
|
63
|
-
|
|
64
33
|
useKeyBoard((event) => {
|
|
65
34
|
if (event.key === KeyboardKeys.ENTER) {
|
|
66
|
-
|
|
67
|
-
primaryButton?.onPress()
|
|
35
|
+
practiceButtonVisible ? handlePrimaryButtonPress() : model.hidePopUpAndLeave()
|
|
68
36
|
}
|
|
69
37
|
})
|
|
70
38
|
|
|
@@ -76,7 +44,7 @@ export const NoAnswer = ({ model, textContent, onPracticePress }: EOAModalConten
|
|
|
76
44
|
{textContent.title}
|
|
77
45
|
</Typography>
|
|
78
46
|
)}
|
|
79
|
-
{!!textContent.subtitle &&
|
|
47
|
+
{!!textContent.subtitle && practiceButtonVisible && (
|
|
80
48
|
<Typography variant="h4" style={styles.subtitle}>
|
|
81
49
|
{textContent.subtitle}
|
|
82
50
|
</Typography>
|
|
@@ -87,18 +55,23 @@ export const NoAnswer = ({ model, textContent, onPracticePress }: EOAModalConten
|
|
|
87
55
|
problemsAmount={stats?.problemsAmount ?? 0}
|
|
88
56
|
/>
|
|
89
57
|
<View style={styles.buttonsContainer}>
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
58
|
+
<Button
|
|
59
|
+
variant={practiceButtonVisible ? ButtonVariant.TERTIARY : ButtonVariant.PRIMARY}
|
|
60
|
+
size="large"
|
|
61
|
+
colorScheme={popUpData?.isExam ? ButtonColor.PURPLE : ButtonColor.BLUE}
|
|
62
|
+
style={{ text: { textTransform: 'uppercase' } }}
|
|
63
|
+
onPress={model.hidePopUpAndLeave}
|
|
64
|
+
>
|
|
65
|
+
{textContent.leftButtonText ?? ''}
|
|
66
|
+
</Button>
|
|
67
|
+
|
|
68
|
+
{practiceButtonVisible && (
|
|
69
|
+
<PracticeButton
|
|
70
|
+
onPress={handlePrimaryButtonPress}
|
|
71
|
+
text={textContent.rightButtonText}
|
|
72
|
+
colorScheme={buttonColorScheme}
|
|
73
|
+
/>
|
|
74
|
+
)}
|
|
102
75
|
</View>
|
|
103
76
|
</View>
|
|
104
77
|
)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { View, StyleSheet } from 'react-native'
|
|
3
|
+
import { SPACING } from '@magmamath/react-native-ui'
|
|
4
|
+
|
|
5
|
+
import { ProblemSelectorButton } from './ProblemSelectorButton'
|
|
6
|
+
|
|
7
|
+
import { PROBLEM_SELECTOR_CONTENT_WIDTH } from '../constants'
|
|
8
|
+
import { ProblemSelectorButtonProps } from '../types'
|
|
9
|
+
|
|
10
|
+
type ProblemSelectorProps = {
|
|
11
|
+
buttons: ProblemSelectorButtonProps[]
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const ProblemSelector = ({ buttons }: ProblemSelectorProps) => {
|
|
15
|
+
if (!buttons.length) return null
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<View style={styles.container}>
|
|
19
|
+
<View style={styles.contentContainer}>
|
|
20
|
+
{buttons.map((btn) => (
|
|
21
|
+
<ProblemSelectorButton {...btn} key={btn.key} />
|
|
22
|
+
))}
|
|
23
|
+
</View>
|
|
24
|
+
</View>
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const styles = StyleSheet.create({
|
|
29
|
+
container: { alignItems: 'center' },
|
|
30
|
+
contentContainer: {
|
|
31
|
+
width: PROBLEM_SELECTOR_CONTENT_WIDTH,
|
|
32
|
+
flexWrap: 'wrap',
|
|
33
|
+
flexDirection: 'row',
|
|
34
|
+
paddingVertical: SPACING[400],
|
|
35
|
+
gap: 15,
|
|
36
|
+
},
|
|
37
|
+
})
|