react-native-elearn-ui 0.1.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.
Files changed (100) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +37 -0
  3. package/lib/module/components/Button.js +82 -0
  4. package/lib/module/components/Button.js.map +1 -0
  5. package/lib/module/components/Card.js +49 -0
  6. package/lib/module/components/Card.js.map +1 -0
  7. package/lib/module/components/CircularProgress.js +80 -0
  8. package/lib/module/components/CircularProgress.js.map +1 -0
  9. package/lib/module/components/Icon.js +268 -0
  10. package/lib/module/components/Icon.js.map +1 -0
  11. package/lib/module/components/ProgressBar.js +39 -0
  12. package/lib/module/components/ProgressBar.js.map +1 -0
  13. package/lib/module/components/Typography.js +102 -0
  14. package/lib/module/components/Typography.js.map +1 -0
  15. package/lib/module/components/index.js +10 -0
  16. package/lib/module/components/index.js.map +1 -0
  17. package/lib/module/context/ElearnConfigContext.js +76 -0
  18. package/lib/module/context/ElearnConfigContext.js.map +1 -0
  19. package/lib/module/context/ThemeContext.js +45 -0
  20. package/lib/module/context/ThemeContext.js.map +1 -0
  21. package/lib/module/index.js +13 -0
  22. package/lib/module/index.js.map +1 -0
  23. package/lib/module/multiply.js +6 -0
  24. package/lib/module/multiply.js.map +1 -0
  25. package/lib/module/package.json +1 -0
  26. package/lib/module/screens/HomeScreen.js +330 -0
  27. package/lib/module/screens/HomeScreen.js.map +1 -0
  28. package/lib/module/screens/QbankScreen.js +200 -0
  29. package/lib/module/screens/QbankScreen.js.map +1 -0
  30. package/lib/module/screens/QuestionScreen.js +383 -0
  31. package/lib/module/screens/QuestionScreen.js.map +1 -0
  32. package/lib/module/screens/QuizStartScreen.js +230 -0
  33. package/lib/module/screens/QuizStartScreen.js.map +1 -0
  34. package/lib/module/screens/ResultScreen.js +318 -0
  35. package/lib/module/screens/ResultScreen.js.map +1 -0
  36. package/lib/module/screens/TopicListScreen.js +222 -0
  37. package/lib/module/screens/TopicListScreen.js.map +1 -0
  38. package/lib/module/screens/index.js +9 -0
  39. package/lib/module/screens/index.js.map +1 -0
  40. package/lib/module/types/index.js +2 -0
  41. package/lib/module/types/index.js.map +1 -0
  42. package/lib/typescript/package.json +1 -0
  43. package/lib/typescript/src/components/Button.d.ts +14 -0
  44. package/lib/typescript/src/components/Button.d.ts.map +1 -0
  45. package/lib/typescript/src/components/Card.d.ts +12 -0
  46. package/lib/typescript/src/components/Card.d.ts.map +1 -0
  47. package/lib/typescript/src/components/CircularProgress.d.ts +15 -0
  48. package/lib/typescript/src/components/CircularProgress.d.ts.map +1 -0
  49. package/lib/typescript/src/components/Icon.d.ts +11 -0
  50. package/lib/typescript/src/components/Icon.d.ts.map +1 -0
  51. package/lib/typescript/src/components/ProgressBar.d.ts +11 -0
  52. package/lib/typescript/src/components/ProgressBar.d.ts.map +1 -0
  53. package/lib/typescript/src/components/Typography.d.ts +12 -0
  54. package/lib/typescript/src/components/Typography.d.ts.map +1 -0
  55. package/lib/typescript/src/components/index.d.ts +9 -0
  56. package/lib/typescript/src/components/index.d.ts.map +1 -0
  57. package/lib/typescript/src/context/ElearnConfigContext.d.ts +22 -0
  58. package/lib/typescript/src/context/ElearnConfigContext.d.ts.map +1 -0
  59. package/lib/typescript/src/context/ThemeContext.d.ts +11 -0
  60. package/lib/typescript/src/context/ThemeContext.d.ts.map +1 -0
  61. package/lib/typescript/src/index.d.ts +6 -0
  62. package/lib/typescript/src/index.d.ts.map +1 -0
  63. package/lib/typescript/src/multiply.d.ts +2 -0
  64. package/lib/typescript/src/multiply.d.ts.map +1 -0
  65. package/lib/typescript/src/screens/HomeScreen.d.ts +3 -0
  66. package/lib/typescript/src/screens/HomeScreen.d.ts.map +1 -0
  67. package/lib/typescript/src/screens/QbankScreen.d.ts +3 -0
  68. package/lib/typescript/src/screens/QbankScreen.d.ts.map +1 -0
  69. package/lib/typescript/src/screens/QuestionScreen.d.ts +11 -0
  70. package/lib/typescript/src/screens/QuestionScreen.d.ts.map +1 -0
  71. package/lib/typescript/src/screens/QuizStartScreen.d.ts +10 -0
  72. package/lib/typescript/src/screens/QuizStartScreen.d.ts.map +1 -0
  73. package/lib/typescript/src/screens/ResultScreen.d.ts +11 -0
  74. package/lib/typescript/src/screens/ResultScreen.d.ts.map +1 -0
  75. package/lib/typescript/src/screens/TopicListScreen.d.ts +9 -0
  76. package/lib/typescript/src/screens/TopicListScreen.d.ts.map +1 -0
  77. package/lib/typescript/src/screens/index.d.ts +7 -0
  78. package/lib/typescript/src/screens/index.d.ts.map +1 -0
  79. package/lib/typescript/src/types/index.d.ts +107 -0
  80. package/lib/typescript/src/types/index.d.ts.map +1 -0
  81. package/package.json +121 -0
  82. package/src/components/Button.tsx +101 -0
  83. package/src/components/Card.tsx +57 -0
  84. package/src/components/CircularProgress.tsx +93 -0
  85. package/src/components/Icon.tsx +338 -0
  86. package/src/components/ProgressBar.tsx +47 -0
  87. package/src/components/Typography.tsx +112 -0
  88. package/src/components/index.ts +8 -0
  89. package/src/context/ElearnConfigContext.tsx +90 -0
  90. package/src/context/ThemeContext.tsx +37 -0
  91. package/src/index.tsx +33 -0
  92. package/src/multiply.tsx +3 -0
  93. package/src/screens/HomeScreen.tsx +291 -0
  94. package/src/screens/QbankScreen.tsx +176 -0
  95. package/src/screens/QuestionScreen.tsx +402 -0
  96. package/src/screens/QuizStartScreen.tsx +215 -0
  97. package/src/screens/ResultScreen.tsx +303 -0
  98. package/src/screens/TopicListScreen.tsx +200 -0
  99. package/src/screens/index.ts +6 -0
  100. package/src/types/index.ts +122 -0
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, ScrollView, StyleSheet, TouchableOpacity, SafeAreaView, StatusBar } from 'react-native';
5
+ import { useElearnConfig } from "../context/ElearnConfigContext.js";
6
+ import { useTheme } from "../context/ThemeContext.js";
7
+ import { Typography, Card, ProgressBar, Icon } from "../components/index.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export const QbankScreen = () => {
10
+ const {
11
+ config,
12
+ callbacks,
13
+ getString
14
+ } = useElearnConfig();
15
+ const theme = useTheme();
16
+ const courses = config.courses || [];
17
+ return /*#__PURE__*/_jsxs(SafeAreaView, {
18
+ style: [styles.safeArea, {
19
+ backgroundColor: theme.background
20
+ }],
21
+ children: [/*#__PURE__*/_jsx(StatusBar, {
22
+ barStyle: "dark-content"
23
+ }), /*#__PURE__*/_jsxs(View, {
24
+ style: styles.header,
25
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
26
+ onPress: () => callbacks.onBackToDashboard?.(),
27
+ style: [styles.backButton, {
28
+ borderColor: theme.border
29
+ }],
30
+ children: /*#__PURE__*/_jsx(Icon, {
31
+ name: "arrow-left",
32
+ size: 20,
33
+ color: theme.textPrimary
34
+ })
35
+ }), /*#__PURE__*/_jsx(Typography, {
36
+ variant: "h2",
37
+ bold: true,
38
+ style: styles.headerTitle,
39
+ children: getString('qbankTitle')
40
+ }), /*#__PURE__*/_jsx(View, {
41
+ style: styles.headerRightPlaceholder
42
+ })]
43
+ }), /*#__PURE__*/_jsxs(ScrollView, {
44
+ contentContainerStyle: styles.scrollContent,
45
+ showsVerticalScrollIndicator: false,
46
+ children: [/*#__PURE__*/_jsxs(View, {
47
+ style: styles.introSection,
48
+ children: [/*#__PURE__*/_jsx(Typography, {
49
+ variant: "h1",
50
+ bold: true,
51
+ color: theme.textPrimary,
52
+ children: getString('qbankTitle')
53
+ }), /*#__PURE__*/_jsx(Typography, {
54
+ variant: "body",
55
+ color: theme.textSecondary,
56
+ style: styles.introDesc,
57
+ children: getString('qbankSubtitle')
58
+ })]
59
+ }), /*#__PURE__*/_jsx(View, {
60
+ style: styles.listContainer,
61
+ children: courses.map(course => {
62
+ const pct = Math.round(course.progress * 100);
63
+ return /*#__PURE__*/_jsxs(Card, {
64
+ bordered: true,
65
+ onPress: () => callbacks.onSelectCourse?.(course),
66
+ style: styles.subjectCard,
67
+ children: [/*#__PURE__*/_jsxs(View, {
68
+ style: styles.cardHeader,
69
+ children: [/*#__PURE__*/_jsxs(View, {
70
+ style: styles.cardHeaderLeft,
71
+ children: [/*#__PURE__*/_jsx(View, {
72
+ style: [styles.folderIconContainer, {
73
+ backgroundColor: theme.secondary
74
+ }],
75
+ children: /*#__PURE__*/_jsx(Icon, {
76
+ name: "folder",
77
+ size: 22,
78
+ color: theme.primary
79
+ })
80
+ }), /*#__PURE__*/_jsxs(View, {
81
+ style: styles.subjectInfo,
82
+ children: [/*#__PURE__*/_jsx(Typography, {
83
+ variant: "h3",
84
+ bold: true,
85
+ color: theme.textPrimary,
86
+ children: course.title
87
+ }), /*#__PURE__*/_jsxs(Typography, {
88
+ variant: "caption",
89
+ color: theme.textSecondary,
90
+ children: [course.topics.length, " ", getString('topicsLabel')]
91
+ })]
92
+ })]
93
+ }), /*#__PURE__*/_jsxs(Typography, {
94
+ variant: "h3",
95
+ bold: true,
96
+ color: theme.primary,
97
+ children: [pct, "%"]
98
+ })]
99
+ }), /*#__PURE__*/_jsxs(View, {
100
+ style: styles.progressSection,
101
+ children: [/*#__PURE__*/_jsx(ProgressBar, {
102
+ progress: course.progress,
103
+ style: styles.progressBar
104
+ }), /*#__PURE__*/_jsxs(View, {
105
+ style: styles.progressTextRow,
106
+ children: [/*#__PURE__*/_jsx(Typography, {
107
+ variant: "caption",
108
+ color: theme.textSecondary,
109
+ children: getString('questionsCountLabel')
110
+ }), /*#__PURE__*/_jsxs(Typography, {
111
+ variant: "caption",
112
+ bold: true,
113
+ color: theme.textPrimary,
114
+ children: [course.completedQuestions, "/", course.totalQuestions]
115
+ })]
116
+ })]
117
+ })]
118
+ }, course.id);
119
+ })
120
+ })]
121
+ })]
122
+ });
123
+ };
124
+ const styles = StyleSheet.create({
125
+ safeArea: {
126
+ flex: 1
127
+ },
128
+ header: {
129
+ flexDirection: 'row',
130
+ justifyContent: 'space-between',
131
+ alignItems: 'center',
132
+ paddingHorizontal: 20,
133
+ paddingVertical: 12
134
+ },
135
+ backButton: {
136
+ width: 40,
137
+ height: 40,
138
+ borderRadius: 20,
139
+ borderWidth: 1,
140
+ justifyContent: 'center',
141
+ alignItems: 'center'
142
+ },
143
+ headerTitle: {
144
+ fontSize: 18
145
+ },
146
+ headerRightPlaceholder: {
147
+ width: 40
148
+ },
149
+ scrollContent: {
150
+ paddingHorizontal: 20,
151
+ paddingBottom: 24
152
+ },
153
+ introSection: {
154
+ marginVertical: 16
155
+ },
156
+ introDesc: {
157
+ marginTop: 4,
158
+ lineHeight: 20
159
+ },
160
+ listContainer: {
161
+ marginTop: 8
162
+ },
163
+ subjectCard: {
164
+ padding: 16,
165
+ marginBottom: 12
166
+ },
167
+ cardHeader: {
168
+ flexDirection: 'row',
169
+ justifyContent: 'space-between',
170
+ alignItems: 'center'
171
+ },
172
+ cardHeaderLeft: {
173
+ flexDirection: 'row',
174
+ alignItems: 'center',
175
+ flex: 1
176
+ },
177
+ folderIconContainer: {
178
+ width: 44,
179
+ height: 44,
180
+ borderRadius: 12,
181
+ justifyContent: 'center',
182
+ alignItems: 'center',
183
+ marginRight: 12
184
+ },
185
+ subjectInfo: {
186
+ flex: 1
187
+ },
188
+ progressSection: {
189
+ marginTop: 16
190
+ },
191
+ progressBar: {
192
+ marginBottom: 8
193
+ },
194
+ progressTextRow: {
195
+ flexDirection: 'row',
196
+ justifyContent: 'space-between',
197
+ alignItems: 'center'
198
+ }
199
+ });
200
+ //# sourceMappingURL=QbankScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","ScrollView","StyleSheet","TouchableOpacity","SafeAreaView","StatusBar","useElearnConfig","useTheme","Typography","Card","ProgressBar","Icon","jsx","_jsx","jsxs","_jsxs","QbankScreen","config","callbacks","getString","theme","courses","style","styles","safeArea","backgroundColor","background","children","barStyle","header","onPress","onBackToDashboard","backButton","borderColor","border","name","size","color","textPrimary","variant","bold","headerTitle","headerRightPlaceholder","contentContainerStyle","scrollContent","showsVerticalScrollIndicator","introSection","textSecondary","introDesc","listContainer","map","course","pct","Math","round","progress","bordered","onSelectCourse","subjectCard","cardHeader","cardHeaderLeft","folderIconContainer","secondary","primary","subjectInfo","title","topics","length","progressSection","progressBar","progressTextRow","completedQuestions","totalQuestions","id","create","flex","flexDirection","justifyContent","alignItems","paddingHorizontal","paddingVertical","width","height","borderRadius","borderWidth","fontSize","paddingBottom","marginVertical","marginTop","lineHeight","padding","marginBottom","marginRight"],"sourceRoot":"../../../src","sources":["screens/QbankScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,383 @@
1
+ "use strict";
2
+
3
+ import React, { useState, useEffect } from 'react';
4
+ import { View, ScrollView, StyleSheet, TouchableOpacity, SafeAreaView, StatusBar, Image } from 'react-native';
5
+ import { useElearnConfig } from "../context/ElearnConfigContext.js";
6
+ import { useTheme } from "../context/ThemeContext.js";
7
+ import { Typography, Card, Button, Icon, ProgressBar } from "../components/index.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export const QuestionScreen = ({
10
+ quizId,
11
+ questions,
12
+ title,
13
+ onClose
14
+ }) => {
15
+ const {
16
+ callbacks,
17
+ getString
18
+ } = useElearnConfig();
19
+ const theme = useTheme();
20
+ const [currentIndex, setCurrentIndex] = useState(0);
21
+ const [selectedOption, setSelectedOption] = useState(null);
22
+ const [isAnswered, setIsAnswered] = useState(false);
23
+ const [userAnswers, setUserAnswers] = useState({});
24
+ const [correctCount, setCorrectCount] = useState(0);
25
+ const [startTime] = useState(Date.now());
26
+ const [seconds, setSeconds] = useState(0);
27
+
28
+ // Timer effect
29
+ useEffect(() => {
30
+ const timer = setInterval(() => {
31
+ setSeconds(prev => prev + 1);
32
+ }, 1000);
33
+ return () => clearInterval(timer);
34
+ }, []);
35
+ if (!questions || questions.length === 0) {
36
+ return /*#__PURE__*/_jsx(SafeAreaView, {
37
+ style: [styles.safeArea, {
38
+ backgroundColor: theme.background
39
+ }],
40
+ children: /*#__PURE__*/_jsxs(View, {
41
+ style: styles.errorContainer,
42
+ children: [/*#__PURE__*/_jsx(Typography, {
43
+ variant: "h2",
44
+ bold: true,
45
+ children: "No questions available"
46
+ }), /*#__PURE__*/_jsx(Button, {
47
+ title: "Go Back",
48
+ onPress: onClose,
49
+ style: styles.errorButton
50
+ })]
51
+ })
52
+ });
53
+ }
54
+ const currentQuestion = questions[currentIndex];
55
+ const optionPrefixes = ['A', 'B', 'C', 'D', 'E', 'F'];
56
+ const formatTime = totalSeconds => {
57
+ const mins = Math.floor(totalSeconds / 60);
58
+ const secs = totalSeconds % 60;
59
+ return `${mins}:${secs.toString().padStart(2, '0')}`;
60
+ };
61
+ const handleOptionPress = index => {
62
+ if (isAnswered) return; // Prevent changing answer after selection
63
+
64
+ setSelectedOption(index);
65
+ setIsAnswered(true);
66
+ const updatedAnswers = {
67
+ ...userAnswers,
68
+ [currentQuestion.id]: index
69
+ };
70
+ setUserAnswers(updatedAnswers);
71
+ const isCorrect = index === currentQuestion.correctOptionIndex;
72
+ if (isCorrect) {
73
+ setCorrectCount(prev => prev + 1);
74
+ }
75
+ };
76
+ const handleNext = () => {
77
+ if (currentIndex < questions.length - 1) {
78
+ setCurrentIndex(prev => prev + 1);
79
+ setSelectedOption(null);
80
+ setIsAnswered(false);
81
+ } else {
82
+ // Last question - finish quiz
83
+ const totalTimeSeconds = Math.round((Date.now() - startTime) / 1000);
84
+ const wrongCount = questions.length - correctCount;
85
+ const accuracy = Math.round(correctCount / questions.length * 100);
86
+ const results = {
87
+ quizId,
88
+ totalQuestions: questions.length,
89
+ correctCount,
90
+ wrongCount,
91
+ skippedCount: 0,
92
+ accuracy,
93
+ timeSpentSeconds: totalTimeSeconds,
94
+ userAnswers
95
+ };
96
+ callbacks.onFinishQuiz?.(quizId, results);
97
+ }
98
+ };
99
+ const progress = (currentIndex + 1) / questions.length;
100
+ return /*#__PURE__*/_jsxs(SafeAreaView, {
101
+ style: [styles.safeArea, {
102
+ backgroundColor: theme.background
103
+ }],
104
+ children: [/*#__PURE__*/_jsx(StatusBar, {
105
+ barStyle: "dark-content"
106
+ }), /*#__PURE__*/_jsxs(View, {
107
+ style: styles.header,
108
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
109
+ onPress: onClose,
110
+ style: styles.closeButton,
111
+ children: /*#__PURE__*/_jsx(Icon, {
112
+ name: "x-circle",
113
+ size: 24,
114
+ color: theme.textSecondary
115
+ })
116
+ }), /*#__PURE__*/_jsx(View, {
117
+ style: styles.headerCenter,
118
+ children: /*#__PURE__*/_jsx(Typography, {
119
+ variant: "h3",
120
+ bold: true,
121
+ numberOfLines: 1,
122
+ children: title
123
+ })
124
+ }), /*#__PURE__*/_jsxs(View, {
125
+ style: styles.timerRow,
126
+ children: [/*#__PURE__*/_jsx(Icon, {
127
+ name: "clock",
128
+ size: 16,
129
+ color: theme.textSecondary
130
+ }), /*#__PURE__*/_jsx(Typography, {
131
+ variant: "caption",
132
+ bold: true,
133
+ color: theme.textSecondary,
134
+ style: styles.timerText,
135
+ children: formatTime(seconds)
136
+ })]
137
+ })]
138
+ }), /*#__PURE__*/_jsx(ProgressBar, {
139
+ progress: progress,
140
+ height: 4,
141
+ style: styles.progressTracker
142
+ }), /*#__PURE__*/_jsxs(ScrollView, {
143
+ contentContainerStyle: styles.scrollContent,
144
+ showsVerticalScrollIndicator: false,
145
+ children: [/*#__PURE__*/_jsx(View, {
146
+ style: styles.questionMeta,
147
+ children: /*#__PURE__*/_jsxs(Typography, {
148
+ variant: "caption",
149
+ color: theme.primary,
150
+ bold: true,
151
+ children: [getString('questionLabel').toUpperCase(), " ", currentIndex + 1, " OF ", questions.length]
152
+ })
153
+ }), /*#__PURE__*/_jsx(Typography, {
154
+ variant: "h2",
155
+ bold: true,
156
+ style: styles.questionText,
157
+ children: currentQuestion.text
158
+ }), currentQuestion.imageUrl && /*#__PURE__*/_jsx(Image, {
159
+ source: {
160
+ uri: currentQuestion.imageUrl
161
+ },
162
+ style: styles.questionImage,
163
+ resizeMode: "contain"
164
+ }), /*#__PURE__*/_jsx(View, {
165
+ style: styles.optionsList,
166
+ children: currentQuestion.options.map((option, idx) => {
167
+ const isSelected = selectedOption === idx;
168
+ const isCorrectAnswer = idx === currentQuestion.correctOptionIndex;
169
+ let optionBg = theme.cardBackground;
170
+ let optionBorder = theme.border;
171
+ let showFeedbackIcon = null;
172
+ if (isAnswered) {
173
+ if (isCorrectAnswer) {
174
+ // Highlight correct answer in green
175
+ optionBg = 'rgba(16, 185, 129, 0.08)';
176
+ optionBorder = theme.success;
177
+ showFeedbackIcon = 'check';
178
+ } else if (isSelected) {
179
+ // Highlight selected incorrect answer in red
180
+ optionBg = 'rgba(239, 68, 68, 0.08)';
181
+ optionBorder = theme.danger;
182
+ showFeedbackIcon = 'cross';
183
+ }
184
+ } else if (isSelected) {
185
+ // Active highlight before submission
186
+ optionBg = theme.secondary;
187
+ optionBorder = theme.primary;
188
+ }
189
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
190
+ activeOpacity: 0.8,
191
+ onPress: () => handleOptionPress(idx),
192
+ disabled: isAnswered,
193
+ style: [styles.optionCard, {
194
+ backgroundColor: optionBg,
195
+ borderColor: optionBorder
196
+ }],
197
+ children: /*#__PURE__*/_jsxs(View, {
198
+ style: styles.optionRow,
199
+ children: [/*#__PURE__*/_jsx(View, {
200
+ style: [styles.prefixCircle, {
201
+ backgroundColor: isSelected ? theme.primary : theme.secondary
202
+ }, isAnswered && isCorrectAnswer && {
203
+ backgroundColor: theme.success
204
+ }, isAnswered && isSelected && !isCorrectAnswer && {
205
+ backgroundColor: theme.danger
206
+ }],
207
+ children: /*#__PURE__*/_jsx(Typography, {
208
+ variant: "caption",
209
+ bold: true,
210
+ color: isSelected || isAnswered && isCorrectAnswer ? theme.textInverse : theme.primary,
211
+ children: optionPrefixes[idx] || idx + 1
212
+ })
213
+ }), /*#__PURE__*/_jsx(Typography, {
214
+ variant: "body",
215
+ color: theme.textPrimary,
216
+ style: styles.optionText,
217
+ children: option
218
+ }), isAnswered && showFeedbackIcon && /*#__PURE__*/_jsx(View, {
219
+ style: styles.feedbackIcon,
220
+ children: /*#__PURE__*/_jsx(Icon, {
221
+ name: showFeedbackIcon === 'check' ? 'check-circle' : 'x-circle',
222
+ size: 20,
223
+ color: showFeedbackIcon === 'check' ? theme.success : theme.danger
224
+ })
225
+ })]
226
+ })
227
+ }, idx);
228
+ })
229
+ }), isAnswered && /*#__PURE__*/_jsxs(Card, {
230
+ bordered: true,
231
+ style: styles.explanationCard,
232
+ children: [/*#__PURE__*/_jsxs(View, {
233
+ style: styles.explanationHeader,
234
+ children: [/*#__PURE__*/_jsx(Icon, {
235
+ name: "info",
236
+ size: 20,
237
+ color: theme.primary
238
+ }), /*#__PURE__*/_jsx(Typography, {
239
+ variant: "h3",
240
+ bold: true,
241
+ color: theme.primary,
242
+ style: styles.explanationTitle,
243
+ children: getString('explanationLabel')
244
+ })]
245
+ }), /*#__PURE__*/_jsx(Typography, {
246
+ variant: "body",
247
+ color: theme.textPrimary,
248
+ style: styles.explanationBody,
249
+ children: currentQuestion.explanation
250
+ })]
251
+ })]
252
+ }), isAnswered && /*#__PURE__*/_jsx(View, {
253
+ style: [styles.footer, {
254
+ backgroundColor: theme.cardBackground,
255
+ borderTopColor: theme.border
256
+ }],
257
+ children: /*#__PURE__*/_jsx(Button, {
258
+ title: currentIndex === questions.length - 1 ? getString('submitButtonLabel') : getString('nextButtonLabel'),
259
+ onPress: handleNext,
260
+ variant: "primary",
261
+ style: styles.nextButton
262
+ })
263
+ })]
264
+ });
265
+ };
266
+ const styles = StyleSheet.create({
267
+ safeArea: {
268
+ flex: 1
269
+ },
270
+ header: {
271
+ flexDirection: 'row',
272
+ justifyContent: 'space-between',
273
+ alignItems: 'center',
274
+ paddingHorizontal: 16,
275
+ paddingVertical: 12
276
+ },
277
+ closeButton: {
278
+ padding: 4
279
+ },
280
+ headerCenter: {
281
+ flex: 1,
282
+ alignItems: 'center',
283
+ marginHorizontal: 12
284
+ },
285
+ timerRow: {
286
+ flexDirection: 'row',
287
+ alignItems: 'center',
288
+ paddingHorizontal: 10,
289
+ paddingVertical: 6,
290
+ borderRadius: 12,
291
+ backgroundColor: '#F1F5F9'
292
+ },
293
+ timerText: {
294
+ marginLeft: 6
295
+ },
296
+ progressTracker: {
297
+ borderRadius: 0
298
+ },
299
+ scrollContent: {
300
+ paddingHorizontal: 20,
301
+ paddingTop: 16,
302
+ paddingBottom: 40
303
+ },
304
+ questionMeta: {
305
+ marginBottom: 8
306
+ },
307
+ questionText: {
308
+ fontSize: 18,
309
+ lineHeight: 24,
310
+ marginBottom: 16
311
+ },
312
+ questionImage: {
313
+ width: '100%',
314
+ height: 180,
315
+ borderRadius: 12,
316
+ marginBottom: 20,
317
+ backgroundColor: '#F8FAFC'
318
+ },
319
+ optionsList: {
320
+ marginBottom: 20
321
+ },
322
+ optionCard: {
323
+ borderWidth: 1.5,
324
+ borderRadius: 14,
325
+ padding: 14,
326
+ marginBottom: 12
327
+ },
328
+ optionRow: {
329
+ flexDirection: 'row',
330
+ alignItems: 'center'
331
+ },
332
+ prefixCircle: {
333
+ width: 28,
334
+ height: 28,
335
+ borderRadius: 14,
336
+ justifyContent: 'center',
337
+ alignItems: 'center',
338
+ marginRight: 12
339
+ },
340
+ optionText: {
341
+ flex: 1,
342
+ lineHeight: 20
343
+ },
344
+ feedbackIcon: {
345
+ marginLeft: 8
346
+ },
347
+ explanationCard: {
348
+ padding: 20,
349
+ borderRadius: 16,
350
+ marginTop: 12,
351
+ borderWidth: 1,
352
+ borderStyle: 'dashed'
353
+ },
354
+ explanationHeader: {
355
+ flexDirection: 'row',
356
+ alignItems: 'center',
357
+ marginBottom: 10
358
+ },
359
+ explanationTitle: {
360
+ marginLeft: 8
361
+ },
362
+ explanationBody: {
363
+ lineHeight: 20
364
+ },
365
+ footer: {
366
+ paddingHorizontal: 20,
367
+ paddingVertical: 14,
368
+ borderTopWidth: 1
369
+ },
370
+ nextButton: {
371
+ width: '100%'
372
+ },
373
+ errorContainer: {
374
+ flex: 1,
375
+ justifyContent: 'center',
376
+ alignItems: 'center',
377
+ padding: 24
378
+ },
379
+ errorButton: {
380
+ marginTop: 16
381
+ }
382
+ });
383
+ //# sourceMappingURL=QuestionScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useEffect","View","ScrollView","StyleSheet","TouchableOpacity","SafeAreaView","StatusBar","Image","useElearnConfig","useTheme","Typography","Card","Button","Icon","ProgressBar","jsx","_jsx","jsxs","_jsxs","QuestionScreen","quizId","questions","title","onClose","callbacks","getString","theme","currentIndex","setCurrentIndex","selectedOption","setSelectedOption","isAnswered","setIsAnswered","userAnswers","setUserAnswers","correctCount","setCorrectCount","startTime","Date","now","seconds","setSeconds","timer","setInterval","prev","clearInterval","length","style","styles","safeArea","backgroundColor","background","children","errorContainer","variant","bold","onPress","errorButton","currentQuestion","optionPrefixes","formatTime","totalSeconds","mins","Math","floor","secs","toString","padStart","handleOptionPress","index","updatedAnswers","id","isCorrect","correctOptionIndex","handleNext","totalTimeSeconds","round","wrongCount","accuracy","results","totalQuestions","skippedCount","timeSpentSeconds","onFinishQuiz","progress","barStyle","header","closeButton","name","size","color","textSecondary","headerCenter","numberOfLines","timerRow","timerText","height","progressTracker","contentContainerStyle","scrollContent","showsVerticalScrollIndicator","questionMeta","primary","toUpperCase","questionText","text","imageUrl","source","uri","questionImage","resizeMode","optionsList","options","map","option","idx","isSelected","isCorrectAnswer","optionBg","cardBackground","optionBorder","border","showFeedbackIcon","success","danger","secondary","activeOpacity","disabled","optionCard","borderColor","optionRow","prefixCircle","textInverse","textPrimary","optionText","feedbackIcon","bordered","explanationCard","explanationHeader","explanationTitle","explanationBody","explanation","footer","borderTopColor","nextButton","create","flex","flexDirection","justifyContent","alignItems","paddingHorizontal","paddingVertical","padding","marginHorizontal","borderRadius","marginLeft","paddingTop","paddingBottom","marginBottom","fontSize","lineHeight","width","borderWidth","marginRight","marginTop","borderStyle","borderTopWidth"],"sourceRoot":"../../../src","sources":["screens/QuestionScreen.tsx"],"mappings":"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","ignoreList":[]}