react-native-elearn-ui 0.1.12 → 0.1.13
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/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/HomeScreen.js +672 -662
- package/lib/module/screens/HomeScreen.js.map +1 -1
- package/lib/module/screens/index.js +0 -8
- package/lib/module/screens/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/HomeScreen.d.ts.map +1 -1
- package/lib/typescript/src/screens/index.d.ts +0 -8
- package/lib/typescript/src/screens/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +0 -8
- package/src/screens/HomeScreen.tsx +471 -534
- package/src/screens/index.ts +0 -8
- package/lib/module/screens/PearlChaptersScreen.js +0 -359
- package/lib/module/screens/PearlChaptersScreen.js.map +0 -1
- package/lib/module/screens/PearlReaderScreen.js +0 -313
- package/lib/module/screens/PearlReaderScreen.js.map +0 -1
- package/lib/module/screens/PearlsScreen.js +0 -153
- package/lib/module/screens/PearlsScreen.js.map +0 -1
- package/lib/module/screens/QbankScreen.js +0 -370
- package/lib/module/screens/QbankScreen.js.map +0 -1
- package/lib/module/screens/QuestionScreen.js +0 -437
- package/lib/module/screens/QuestionScreen.js.map +0 -1
- package/lib/module/screens/QuizStartScreen.js +0 -283
- package/lib/module/screens/QuizStartScreen.js.map +0 -1
- package/lib/module/screens/ResultScreen.js +0 -646
- package/lib/module/screens/ResultScreen.js.map +0 -1
- package/lib/module/screens/TopicListScreen.js +0 -420
- package/lib/module/screens/TopicListScreen.js.map +0 -1
- package/lib/module/screens/pearlsMockData.js +0 -77
- package/lib/module/screens/pearlsMockData.js.map +0 -1
- package/lib/typescript/src/screens/PearlChaptersScreen.d.ts +0 -13
- package/lib/typescript/src/screens/PearlChaptersScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/PearlReaderScreen.d.ts +0 -14
- package/lib/typescript/src/screens/PearlReaderScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/PearlsScreen.d.ts +0 -11
- package/lib/typescript/src/screens/PearlsScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/QbankScreen.d.ts +0 -10
- package/lib/typescript/src/screens/QbankScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/QuestionScreen.d.ts +0 -14
- package/lib/typescript/src/screens/QuestionScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/QuizStartScreen.d.ts +0 -14
- package/lib/typescript/src/screens/QuizStartScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/ResultScreen.d.ts +0 -13
- package/lib/typescript/src/screens/ResultScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/TopicListScreen.d.ts +0 -12
- package/lib/typescript/src/screens/TopicListScreen.d.ts.map +0 -1
- package/lib/typescript/src/screens/pearlsMockData.d.ts +0 -3
- package/lib/typescript/src/screens/pearlsMockData.d.ts.map +0 -1
- package/src/screens/PearlChaptersScreen.tsx +0 -330
- package/src/screens/PearlReaderScreen.tsx +0 -306
- package/src/screens/PearlsScreen.tsx +0 -147
- package/src/screens/QbankScreen.tsx +0 -327
- package/src/screens/QuestionScreen.tsx +0 -423
- package/src/screens/QuizStartScreen.tsx +0 -260
- package/src/screens/ResultScreen.tsx +0 -618
- package/src/screens/TopicListScreen.tsx +0 -388
- package/src/screens/pearlsMockData.ts +0 -70
package/src/screens/index.ts
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
1
|
export { HomeScreen } from './HomeScreen';
|
|
2
|
-
export { QbankScreen } from './QbankScreen';
|
|
3
|
-
export { TopicListScreen } from './TopicListScreen';
|
|
4
|
-
export { QuizStartScreen } from './QuizStartScreen';
|
|
5
|
-
export { QuestionScreen } from './QuestionScreen';
|
|
6
|
-
export { ResultScreen } from './ResultScreen';
|
|
7
|
-
export { PearlsScreen } from './PearlsScreen';
|
|
8
|
-
export { PearlChaptersScreen } from './PearlChaptersScreen';
|
|
9
|
-
export { PearlReaderScreen } from './PearlReaderScreen';
|
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import React, { useState } from 'react';
|
|
4
|
-
import { View, ScrollView, StyleSheet, TouchableOpacity, StatusBar, Modal, Dimensions } from 'react-native';
|
|
5
|
-
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
6
|
-
import { useTheme } from "../context/ThemeContext.js";
|
|
7
|
-
import { Typography, Card, Icon } from "../components/index.js";
|
|
8
|
-
import { MOCK_PEARLS_TOPICS } from "./pearlsMockData.js";
|
|
9
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
-
const {
|
|
11
|
-
height: SCREEN_HEIGHT
|
|
12
|
-
} = Dimensions.get('window');
|
|
13
|
-
export const PearlChaptersScreen = ({
|
|
14
|
-
topic,
|
|
15
|
-
topicId,
|
|
16
|
-
onBack,
|
|
17
|
-
hideHeader = false,
|
|
18
|
-
onSelectChapter,
|
|
19
|
-
title = 'Pearls'
|
|
20
|
-
}) => {
|
|
21
|
-
const theme = useTheme();
|
|
22
|
-
const [bottomSheetVisible, setBottomSheetVisible] = useState(false);
|
|
23
|
-
const activeTopic = topic || MOCK_PEARLS_TOPICS.find(t => t.id === topicId);
|
|
24
|
-
if (!activeTopic) {
|
|
25
|
-
return /*#__PURE__*/_jsx(SafeAreaView, {
|
|
26
|
-
style: [styles.safeArea, {
|
|
27
|
-
backgroundColor: theme.background
|
|
28
|
-
}],
|
|
29
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
30
|
-
style: {
|
|
31
|
-
flex: 1,
|
|
32
|
-
justifyContent: 'center',
|
|
33
|
-
alignItems: 'center',
|
|
34
|
-
padding: 20
|
|
35
|
-
},
|
|
36
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
|
37
|
-
variant: "h2",
|
|
38
|
-
bold: true,
|
|
39
|
-
style: {
|
|
40
|
-
marginBottom: 12
|
|
41
|
-
},
|
|
42
|
-
children: "Topic not found"
|
|
43
|
-
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
44
|
-
onPress: onBack,
|
|
45
|
-
style: {
|
|
46
|
-
paddingHorizontal: 20,
|
|
47
|
-
paddingVertical: 10,
|
|
48
|
-
borderRadius: 8,
|
|
49
|
-
backgroundColor: theme.primary
|
|
50
|
-
},
|
|
51
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
|
52
|
-
variant: "body",
|
|
53
|
-
bold: true,
|
|
54
|
-
color: "#FFFFFF",
|
|
55
|
-
children: "Go Back"
|
|
56
|
-
})
|
|
57
|
-
})]
|
|
58
|
-
})
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
const sections = Object.keys(activeTopic.sections || {});
|
|
62
|
-
|
|
63
|
-
// --- Render bottom sheet overlay for topics filter ---
|
|
64
|
-
const renderBottomSheet = () => {
|
|
65
|
-
const list = [{
|
|
66
|
-
name: 'Vertebral Curves',
|
|
67
|
-
count: 25
|
|
68
|
-
}, {
|
|
69
|
-
name: 'Introduction',
|
|
70
|
-
count: 15
|
|
71
|
-
}, {
|
|
72
|
-
name: 'Definition and scope',
|
|
73
|
-
count: 15
|
|
74
|
-
}, {
|
|
75
|
-
name: 'Branches of anatomy',
|
|
76
|
-
count: 5
|
|
77
|
-
}, {
|
|
78
|
-
name: 'Anatomical terminology',
|
|
79
|
-
count: 23
|
|
80
|
-
}, {
|
|
81
|
-
name: 'Anatomical positions',
|
|
82
|
-
count: 25
|
|
83
|
-
}, {
|
|
84
|
-
name: 'CSF',
|
|
85
|
-
count: 15
|
|
86
|
-
}, {
|
|
87
|
-
name: 'Levels of structural organization',
|
|
88
|
-
count: 15
|
|
89
|
-
}, {
|
|
90
|
-
name: 'Systems of the human body overview',
|
|
91
|
-
count: 5
|
|
92
|
-
}, {
|
|
93
|
-
name: 'Tissue types',
|
|
94
|
-
count: 23
|
|
95
|
-
}];
|
|
96
|
-
return /*#__PURE__*/_jsx(Modal, {
|
|
97
|
-
visible: bottomSheetVisible,
|
|
98
|
-
transparent: true,
|
|
99
|
-
animationType: "slide",
|
|
100
|
-
onRequestClose: () => setBottomSheetVisible(false),
|
|
101
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
102
|
-
style: styles.sheetOverlay,
|
|
103
|
-
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
104
|
-
activeOpacity: 1,
|
|
105
|
-
style: styles.sheetBackdrop,
|
|
106
|
-
onPress: () => setBottomSheetVisible(false)
|
|
107
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
108
|
-
style: styles.sheetContent,
|
|
109
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
110
|
-
style: styles.sheetGrabber
|
|
111
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
112
|
-
style: styles.sheetHeader,
|
|
113
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
|
114
|
-
variant: "h2",
|
|
115
|
-
bold: true,
|
|
116
|
-
color: theme.textPrimary,
|
|
117
|
-
children: activeTopic.title
|
|
118
|
-
})
|
|
119
|
-
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
120
|
-
contentContainerStyle: styles.sheetScroll,
|
|
121
|
-
children: list.map((item, idx) => /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
122
|
-
style: styles.sheetItemRow,
|
|
123
|
-
onPress: () => {
|
|
124
|
-
setBottomSheetVisible(false);
|
|
125
|
-
},
|
|
126
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
|
127
|
-
variant: "body",
|
|
128
|
-
color: theme.textPrimary,
|
|
129
|
-
children: item.name
|
|
130
|
-
}), /*#__PURE__*/_jsxs(Typography, {
|
|
131
|
-
variant: "caption",
|
|
132
|
-
color: theme.textSecondary,
|
|
133
|
-
children: [item.count, " Modules"]
|
|
134
|
-
})]
|
|
135
|
-
}, idx))
|
|
136
|
-
})]
|
|
137
|
-
})]
|
|
138
|
-
})
|
|
139
|
-
});
|
|
140
|
-
};
|
|
141
|
-
return /*#__PURE__*/_jsxs(SafeAreaView, {
|
|
142
|
-
style: [styles.safeArea, {
|
|
143
|
-
backgroundColor: theme.background
|
|
144
|
-
}],
|
|
145
|
-
children: [/*#__PURE__*/_jsx(StatusBar, {
|
|
146
|
-
barStyle: "dark-content"
|
|
147
|
-
}), !hideHeader && /*#__PURE__*/_jsxs(View, {
|
|
148
|
-
style: styles.header,
|
|
149
|
-
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
150
|
-
onPress: onBack,
|
|
151
|
-
style: styles.backButton,
|
|
152
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
153
|
-
name: "arrow-left",
|
|
154
|
-
size: 20,
|
|
155
|
-
color: theme.textPrimary
|
|
156
|
-
})
|
|
157
|
-
}), /*#__PURE__*/_jsx(Typography, {
|
|
158
|
-
variant: "h2",
|
|
159
|
-
bold: true,
|
|
160
|
-
style: styles.headerTitle,
|
|
161
|
-
children: title
|
|
162
|
-
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
163
|
-
onPress: () => setBottomSheetVisible(true),
|
|
164
|
-
style: styles.headerRightBtn,
|
|
165
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
166
|
-
name: "list",
|
|
167
|
-
size: 20,
|
|
168
|
-
color: theme.textPrimary
|
|
169
|
-
})
|
|
170
|
-
})]
|
|
171
|
-
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
172
|
-
contentContainerStyle: styles.scrollContent,
|
|
173
|
-
showsVerticalScrollIndicator: false,
|
|
174
|
-
children: sections.map(sectionName => {
|
|
175
|
-
const list = activeTopic.sections?.[sectionName] || [];
|
|
176
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
177
|
-
style: styles.sectionBlock,
|
|
178
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
|
179
|
-
variant: "h2",
|
|
180
|
-
bold: true,
|
|
181
|
-
color: theme.textPrimary,
|
|
182
|
-
style: styles.sectionHeading,
|
|
183
|
-
children: sectionName
|
|
184
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
185
|
-
style: styles.chaptersList,
|
|
186
|
-
children: list.map(chapter => /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
187
|
-
activeOpacity: 0.8,
|
|
188
|
-
onPress: () => onSelectChapter?.(activeTopic, chapter),
|
|
189
|
-
disabled: chapter.isLocked,
|
|
190
|
-
children: /*#__PURE__*/_jsx(Card, {
|
|
191
|
-
bordered: true,
|
|
192
|
-
style: styles.chapterCard,
|
|
193
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
194
|
-
style: styles.chapterRow,
|
|
195
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
|
196
|
-
variant: "body",
|
|
197
|
-
bold: true,
|
|
198
|
-
color: theme.textSecondary,
|
|
199
|
-
style: styles.chapterNumber,
|
|
200
|
-
children: chapter.number
|
|
201
|
-
}), /*#__PURE__*/_jsx(Typography, {
|
|
202
|
-
variant: "body",
|
|
203
|
-
color: theme.textPrimary,
|
|
204
|
-
style: styles.chapterTitle,
|
|
205
|
-
children: chapter.title
|
|
206
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
207
|
-
style: styles.chapterBadgeCol,
|
|
208
|
-
children: chapter.isFree ? /*#__PURE__*/_jsx(View, {
|
|
209
|
-
style: [styles.freeBadge, {
|
|
210
|
-
borderColor: theme.primary
|
|
211
|
-
}],
|
|
212
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
|
213
|
-
variant: "caption",
|
|
214
|
-
bold: true,
|
|
215
|
-
color: theme.primary,
|
|
216
|
-
style: styles.freeText,
|
|
217
|
-
children: "FREE"
|
|
218
|
-
})
|
|
219
|
-
}) : chapter.isLocked ? /*#__PURE__*/_jsx(View, {
|
|
220
|
-
style: styles.lockCircle,
|
|
221
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
222
|
-
name: "lock",
|
|
223
|
-
size: 12,
|
|
224
|
-
color: theme.textSecondary
|
|
225
|
-
})
|
|
226
|
-
}) : null
|
|
227
|
-
})]
|
|
228
|
-
})
|
|
229
|
-
})
|
|
230
|
-
}, chapter.id))
|
|
231
|
-
})]
|
|
232
|
-
}, sectionName);
|
|
233
|
-
})
|
|
234
|
-
}), renderBottomSheet()]
|
|
235
|
-
});
|
|
236
|
-
};
|
|
237
|
-
const styles = StyleSheet.create({
|
|
238
|
-
safeArea: {
|
|
239
|
-
flex: 1
|
|
240
|
-
},
|
|
241
|
-
header: {
|
|
242
|
-
flexDirection: 'row',
|
|
243
|
-
justifyContent: 'space-between',
|
|
244
|
-
alignItems: 'center',
|
|
245
|
-
paddingHorizontal: 16,
|
|
246
|
-
paddingVertical: 12
|
|
247
|
-
},
|
|
248
|
-
backButton: {
|
|
249
|
-
padding: 6
|
|
250
|
-
},
|
|
251
|
-
headerTitle: {
|
|
252
|
-
fontSize: 18,
|
|
253
|
-
fontWeight: '700'
|
|
254
|
-
},
|
|
255
|
-
headerRightBtn: {
|
|
256
|
-
padding: 6
|
|
257
|
-
},
|
|
258
|
-
scrollContent: {
|
|
259
|
-
paddingHorizontal: 16,
|
|
260
|
-
paddingTop: 8,
|
|
261
|
-
paddingBottom: 24
|
|
262
|
-
},
|
|
263
|
-
sectionBlock: {
|
|
264
|
-
marginBottom: 20
|
|
265
|
-
},
|
|
266
|
-
sectionHeading: {
|
|
267
|
-
fontSize: 16,
|
|
268
|
-
marginBottom: 12
|
|
269
|
-
},
|
|
270
|
-
chaptersList: {
|
|
271
|
-
marginTop: 2
|
|
272
|
-
},
|
|
273
|
-
chapterCard: {
|
|
274
|
-
padding: 12,
|
|
275
|
-
marginBottom: 10,
|
|
276
|
-
borderRadius: 12
|
|
277
|
-
},
|
|
278
|
-
chapterRow: {
|
|
279
|
-
flexDirection: 'row',
|
|
280
|
-
alignItems: 'center'
|
|
281
|
-
},
|
|
282
|
-
chapterNumber: {
|
|
283
|
-
fontSize: 14,
|
|
284
|
-
width: 24,
|
|
285
|
-
textAlign: 'center',
|
|
286
|
-
marginRight: 8
|
|
287
|
-
},
|
|
288
|
-
chapterTitle: {
|
|
289
|
-
flex: 1,
|
|
290
|
-
fontSize: 14,
|
|
291
|
-
lineHeight: 18
|
|
292
|
-
},
|
|
293
|
-
chapterBadgeCol: {
|
|
294
|
-
justifyContent: 'center',
|
|
295
|
-
alignItems: 'flex-end',
|
|
296
|
-
marginLeft: 8
|
|
297
|
-
},
|
|
298
|
-
freeBadge: {
|
|
299
|
-
borderWidth: 1.5,
|
|
300
|
-
borderRadius: 6,
|
|
301
|
-
paddingHorizontal: 8,
|
|
302
|
-
paddingVertical: 3
|
|
303
|
-
},
|
|
304
|
-
freeText: {
|
|
305
|
-
fontSize: 9
|
|
306
|
-
},
|
|
307
|
-
lockCircle: {
|
|
308
|
-
width: 20,
|
|
309
|
-
height: 20,
|
|
310
|
-
borderRadius: 10,
|
|
311
|
-
backgroundColor: '#F1F5F9',
|
|
312
|
-
justifyContent: 'center',
|
|
313
|
-
alignItems: 'center'
|
|
314
|
-
},
|
|
315
|
-
// Bottom Sheet styling
|
|
316
|
-
sheetOverlay: {
|
|
317
|
-
flex: 1,
|
|
318
|
-
backgroundColor: 'rgba(0, 0, 0, 0.4)',
|
|
319
|
-
justifyContent: 'flex-end'
|
|
320
|
-
},
|
|
321
|
-
sheetBackdrop: {
|
|
322
|
-
...StyleSheet.absoluteFillObject
|
|
323
|
-
},
|
|
324
|
-
sheetContent: {
|
|
325
|
-
backgroundColor: '#FFFFFF',
|
|
326
|
-
borderTopLeftRadius: 20,
|
|
327
|
-
borderTopRightRadius: 20,
|
|
328
|
-
maxHeight: SCREEN_HEIGHT * 0.7,
|
|
329
|
-
paddingBottom: 20
|
|
330
|
-
},
|
|
331
|
-
sheetGrabber: {
|
|
332
|
-
width: 40,
|
|
333
|
-
height: 4,
|
|
334
|
-
backgroundColor: '#E2E8F0',
|
|
335
|
-
borderRadius: 2,
|
|
336
|
-
alignSelf: 'center',
|
|
337
|
-
marginTop: 8,
|
|
338
|
-
marginBottom: 16
|
|
339
|
-
},
|
|
340
|
-
sheetHeader: {
|
|
341
|
-
paddingHorizontal: 20,
|
|
342
|
-
paddingBottom: 12,
|
|
343
|
-
borderBottomWidth: 1,
|
|
344
|
-
borderBottomColor: '#F1F5F9'
|
|
345
|
-
},
|
|
346
|
-
sheetScroll: {
|
|
347
|
-
paddingHorizontal: 20,
|
|
348
|
-
paddingVertical: 8
|
|
349
|
-
},
|
|
350
|
-
sheetItemRow: {
|
|
351
|
-
flexDirection: 'row',
|
|
352
|
-
justifyContent: 'space-between',
|
|
353
|
-
alignItems: 'center',
|
|
354
|
-
paddingVertical: 14,
|
|
355
|
-
borderBottomWidth: 1,
|
|
356
|
-
borderBottomColor: '#F8FAFC'
|
|
357
|
-
}
|
|
358
|
-
});
|
|
359
|
-
//# sourceMappingURL=PearlChaptersScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","View","ScrollView","StyleSheet","TouchableOpacity","StatusBar","Modal","Dimensions","SafeAreaView","useTheme","Typography","Card","Icon","MOCK_PEARLS_TOPICS","jsx","_jsx","jsxs","_jsxs","height","SCREEN_HEIGHT","get","PearlChaptersScreen","topic","topicId","onBack","hideHeader","onSelectChapter","title","theme","bottomSheetVisible","setBottomSheetVisible","activeTopic","find","t","id","style","styles","safeArea","backgroundColor","background","children","flex","justifyContent","alignItems","padding","variant","bold","marginBottom","onPress","paddingHorizontal","paddingVertical","borderRadius","primary","color","sections","Object","keys","renderBottomSheet","list","name","count","visible","transparent","animationType","onRequestClose","sheetOverlay","activeOpacity","sheetBackdrop","sheetContent","sheetGrabber","sheetHeader","textPrimary","contentContainerStyle","sheetScroll","map","item","idx","sheetItemRow","textSecondary","barStyle","header","backButton","size","headerTitle","headerRightBtn","scrollContent","showsVerticalScrollIndicator","sectionName","sectionBlock","sectionHeading","chaptersList","chapter","disabled","isLocked","bordered","chapterCard","chapterRow","chapterNumber","number","chapterTitle","chapterBadgeCol","isFree","freeBadge","borderColor","freeText","lockCircle","create","flexDirection","fontSize","fontWeight","paddingTop","paddingBottom","marginTop","width","textAlign","marginRight","lineHeight","marginLeft","borderWidth","absoluteFillObject","borderTopLeftRadius","borderTopRightRadius","maxHeight","alignSelf","borderBottomWidth","borderBottomColor"],"sourceRoot":"../../../src","sources":["screens/PearlChaptersScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import React, { useState } from 'react';
|
|
4
|
-
import { View, ScrollView, StyleSheet, TouchableOpacity, StatusBar } from 'react-native';
|
|
5
|
-
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
6
|
-
import { useTheme } from "../context/ThemeContext.js";
|
|
7
|
-
import { Typography, Icon } from "../components/index.js";
|
|
8
|
-
import { MOCK_PEARLS_TOPICS } from "./pearlsMockData.js";
|
|
9
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
|
-
export const PearlReaderScreen = ({
|
|
11
|
-
topic,
|
|
12
|
-
topicId,
|
|
13
|
-
chapter,
|
|
14
|
-
chapterId,
|
|
15
|
-
onBack,
|
|
16
|
-
hideHeader = false,
|
|
17
|
-
title = 'Pearls'
|
|
18
|
-
}) => {
|
|
19
|
-
const theme = useTheme();
|
|
20
|
-
const activeTopic = topic || MOCK_PEARLS_TOPICS.find(t => t.id === topicId);
|
|
21
|
-
|
|
22
|
-
// Flatten chapters for reader mode navigation
|
|
23
|
-
const flattenedChapters = [];
|
|
24
|
-
if (activeTopic && activeTopic.sections) {
|
|
25
|
-
Object.keys(activeTopic.sections).forEach(sectionName => {
|
|
26
|
-
const sectionChapters = activeTopic.sections?.[sectionName] || [];
|
|
27
|
-
flattenedChapters.push(...sectionChapters);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
const initialIndex = chapterId ? flattenedChapters.findIndex(c => c.id === chapterId) : chapter ? flattenedChapters.findIndex(c => c.id === chapter.id) : 0;
|
|
31
|
-
const [activeChapterIndex, setActiveChapterIndex] = useState(initialIndex >= 0 ? initialIndex : 0);
|
|
32
|
-
const [isCompleted, setIsCompleted] = useState(false);
|
|
33
|
-
const activeChapter = flattenedChapters[activeChapterIndex];
|
|
34
|
-
if (!activeChapter) {
|
|
35
|
-
return /*#__PURE__*/_jsx(SafeAreaView, {
|
|
36
|
-
style: [styles.safeArea, {
|
|
37
|
-
backgroundColor: theme.background
|
|
38
|
-
}],
|
|
39
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
40
|
-
style: {
|
|
41
|
-
flex: 1,
|
|
42
|
-
justifyContent: 'center',
|
|
43
|
-
alignItems: 'center',
|
|
44
|
-
padding: 20
|
|
45
|
-
},
|
|
46
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
|
47
|
-
variant: "h2",
|
|
48
|
-
bold: true,
|
|
49
|
-
style: {
|
|
50
|
-
marginBottom: 12
|
|
51
|
-
},
|
|
52
|
-
children: "Chapter not found"
|
|
53
|
-
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
54
|
-
onPress: onBack,
|
|
55
|
-
style: {
|
|
56
|
-
paddingHorizontal: 20,
|
|
57
|
-
paddingVertical: 10,
|
|
58
|
-
borderRadius: 8,
|
|
59
|
-
backgroundColor: theme.primary
|
|
60
|
-
},
|
|
61
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
|
62
|
-
variant: "body",
|
|
63
|
-
bold: true,
|
|
64
|
-
color: "#FFFFFF",
|
|
65
|
-
children: "Go Back"
|
|
66
|
-
})
|
|
67
|
-
})]
|
|
68
|
-
})
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
const handlePrevChapter = () => {
|
|
72
|
-
if (activeChapterIndex > 0) {
|
|
73
|
-
setActiveChapterIndex(activeChapterIndex - 1);
|
|
74
|
-
setIsCompleted(false);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
const handleNextChapter = () => {
|
|
78
|
-
if (activeChapterIndex < flattenedChapters.length - 1) {
|
|
79
|
-
setActiveChapterIndex(activeChapterIndex + 1);
|
|
80
|
-
setIsCompleted(false);
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
return /*#__PURE__*/_jsxs(SafeAreaView, {
|
|
84
|
-
style: [styles.safeArea, {
|
|
85
|
-
backgroundColor: theme.background
|
|
86
|
-
}],
|
|
87
|
-
children: [/*#__PURE__*/_jsx(StatusBar, {
|
|
88
|
-
barStyle: "dark-content"
|
|
89
|
-
}), !hideHeader && /*#__PURE__*/_jsxs(View, {
|
|
90
|
-
style: styles.header,
|
|
91
|
-
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
92
|
-
onPress: onBack,
|
|
93
|
-
style: styles.backButton,
|
|
94
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
95
|
-
name: "arrow-left",
|
|
96
|
-
size: 20,
|
|
97
|
-
color: theme.textPrimary
|
|
98
|
-
})
|
|
99
|
-
}), /*#__PURE__*/_jsx(Typography, {
|
|
100
|
-
variant: "h2",
|
|
101
|
-
bold: true,
|
|
102
|
-
style: styles.headerTitle,
|
|
103
|
-
children: title
|
|
104
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
105
|
-
style: styles.headerRightPlaceholder
|
|
106
|
-
})]
|
|
107
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
108
|
-
style: styles.readerContainer,
|
|
109
|
-
children: [/*#__PURE__*/_jsxs(View, {
|
|
110
|
-
style: styles.readerSubHeader,
|
|
111
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
|
112
|
-
variant: "body",
|
|
113
|
-
bold: true,
|
|
114
|
-
color: theme.textPrimary,
|
|
115
|
-
style: styles.readerSubTitle,
|
|
116
|
-
children: activeChapter.title.split('.')[0] || activeChapter.title
|
|
117
|
-
}), /*#__PURE__*/_jsxs(Typography, {
|
|
118
|
-
variant: "body",
|
|
119
|
-
bold: true,
|
|
120
|
-
color: theme.textSecondary,
|
|
121
|
-
children: [activeChapterIndex + 1, "/", flattenedChapters.length]
|
|
122
|
-
})]
|
|
123
|
-
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
124
|
-
contentContainerStyle: styles.readerScroll,
|
|
125
|
-
showsVerticalScrollIndicator: false,
|
|
126
|
-
children: activeChapter.bullets.map((bullet, idx) => {
|
|
127
|
-
const parts = bullet.split(':');
|
|
128
|
-
const boldPart = parts[0];
|
|
129
|
-
const rest = parts.slice(1).join(':');
|
|
130
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
131
|
-
style: styles.bulletRow,
|
|
132
|
-
children: [/*#__PURE__*/_jsx(Typography, {
|
|
133
|
-
variant: "body",
|
|
134
|
-
color: theme.textPrimary,
|
|
135
|
-
style: styles.bulletPointDot,
|
|
136
|
-
children: "\u2022"
|
|
137
|
-
}), /*#__PURE__*/_jsx(Typography, {
|
|
138
|
-
variant: "body",
|
|
139
|
-
color: theme.textPrimary,
|
|
140
|
-
style: styles.bulletText,
|
|
141
|
-
children: rest ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
142
|
-
children: [/*#__PURE__*/_jsxs(Typography, {
|
|
143
|
-
variant: "body",
|
|
144
|
-
bold: true,
|
|
145
|
-
children: [boldPart, ":"]
|
|
146
|
-
}), rest]
|
|
147
|
-
}) : bullet
|
|
148
|
-
})]
|
|
149
|
-
}, idx);
|
|
150
|
-
})
|
|
151
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
152
|
-
style: styles.checkboxBar,
|
|
153
|
-
children: /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
154
|
-
activeOpacity: 0.8,
|
|
155
|
-
onPress: () => setIsCompleted(!isCompleted),
|
|
156
|
-
style: styles.checkboxRow,
|
|
157
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
158
|
-
style: [styles.checkboxBox, {
|
|
159
|
-
borderColor: theme.border
|
|
160
|
-
}, isCompleted && {
|
|
161
|
-
backgroundColor: theme.primary,
|
|
162
|
-
borderColor: theme.primary
|
|
163
|
-
}],
|
|
164
|
-
children: isCompleted && /*#__PURE__*/_jsx(View, {
|
|
165
|
-
style: styles.checkboxInner
|
|
166
|
-
})
|
|
167
|
-
}), /*#__PURE__*/_jsx(Typography, {
|
|
168
|
-
variant: "body",
|
|
169
|
-
bold: true,
|
|
170
|
-
color: theme.textPrimary,
|
|
171
|
-
children: "Mark as Complete"
|
|
172
|
-
})]
|
|
173
|
-
})
|
|
174
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
175
|
-
style: styles.footerRow,
|
|
176
|
-
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
177
|
-
onPress: handlePrevChapter,
|
|
178
|
-
disabled: activeChapterIndex === 0,
|
|
179
|
-
style: [styles.footerBtn, activeChapterIndex === 0 && {
|
|
180
|
-
opacity: 0.4
|
|
181
|
-
}],
|
|
182
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
|
183
|
-
variant: "body",
|
|
184
|
-
bold: true,
|
|
185
|
-
color: theme.textPrimary,
|
|
186
|
-
children: "Prev"
|
|
187
|
-
})
|
|
188
|
-
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
189
|
-
onPress: handleNextChapter,
|
|
190
|
-
disabled: activeChapterIndex === flattenedChapters.length - 1,
|
|
191
|
-
style: [styles.nextActionBtn, {
|
|
192
|
-
backgroundColor: theme.primary
|
|
193
|
-
}, activeChapterIndex === flattenedChapters.length - 1 && {
|
|
194
|
-
opacity: 0.4
|
|
195
|
-
}],
|
|
196
|
-
children: /*#__PURE__*/_jsx(Typography, {
|
|
197
|
-
variant: "body",
|
|
198
|
-
bold: true,
|
|
199
|
-
color: "#FFFFFF",
|
|
200
|
-
children: "Next"
|
|
201
|
-
})
|
|
202
|
-
})]
|
|
203
|
-
})]
|
|
204
|
-
})]
|
|
205
|
-
});
|
|
206
|
-
};
|
|
207
|
-
const styles = StyleSheet.create({
|
|
208
|
-
safeArea: {
|
|
209
|
-
flex: 1
|
|
210
|
-
},
|
|
211
|
-
header: {
|
|
212
|
-
flexDirection: 'row',
|
|
213
|
-
justifyContent: 'space-between',
|
|
214
|
-
alignItems: 'center',
|
|
215
|
-
paddingHorizontal: 16,
|
|
216
|
-
paddingVertical: 12
|
|
217
|
-
},
|
|
218
|
-
backButton: {
|
|
219
|
-
padding: 6
|
|
220
|
-
},
|
|
221
|
-
headerTitle: {
|
|
222
|
-
fontSize: 18,
|
|
223
|
-
fontWeight: '700'
|
|
224
|
-
},
|
|
225
|
-
headerRightPlaceholder: {
|
|
226
|
-
width: 32
|
|
227
|
-
},
|
|
228
|
-
readerContainer: {
|
|
229
|
-
flex: 1
|
|
230
|
-
},
|
|
231
|
-
readerSubHeader: {
|
|
232
|
-
flexDirection: 'row',
|
|
233
|
-
justifyContent: 'space-between',
|
|
234
|
-
alignItems: 'center',
|
|
235
|
-
paddingHorizontal: 16,
|
|
236
|
-
paddingVertical: 12,
|
|
237
|
-
borderBottomWidth: 1,
|
|
238
|
-
borderBottomColor: '#E2E8F0'
|
|
239
|
-
},
|
|
240
|
-
readerSubTitle: {
|
|
241
|
-
flex: 1,
|
|
242
|
-
fontSize: 14,
|
|
243
|
-
marginRight: 16
|
|
244
|
-
},
|
|
245
|
-
readerScroll: {
|
|
246
|
-
paddingHorizontal: 16,
|
|
247
|
-
paddingVertical: 16
|
|
248
|
-
},
|
|
249
|
-
bulletRow: {
|
|
250
|
-
flexDirection: 'row',
|
|
251
|
-
alignItems: 'flex-start',
|
|
252
|
-
marginBottom: 16
|
|
253
|
-
},
|
|
254
|
-
bulletPointDot: {
|
|
255
|
-
fontSize: 18,
|
|
256
|
-
marginRight: 10,
|
|
257
|
-
lineHeight: 20
|
|
258
|
-
},
|
|
259
|
-
bulletText: {
|
|
260
|
-
flex: 1,
|
|
261
|
-
fontSize: 14,
|
|
262
|
-
lineHeight: 22
|
|
263
|
-
},
|
|
264
|
-
checkboxBar: {
|
|
265
|
-
paddingHorizontal: 16,
|
|
266
|
-
paddingVertical: 14,
|
|
267
|
-
borderTopWidth: 1,
|
|
268
|
-
borderTopColor: '#E2E8F0',
|
|
269
|
-
backgroundColor: '#F8FAFC'
|
|
270
|
-
},
|
|
271
|
-
checkboxRow: {
|
|
272
|
-
flexDirection: 'row',
|
|
273
|
-
alignItems: 'center'
|
|
274
|
-
},
|
|
275
|
-
checkboxBox: {
|
|
276
|
-
width: 20,
|
|
277
|
-
height: 20,
|
|
278
|
-
borderWidth: 2,
|
|
279
|
-
borderRadius: 4,
|
|
280
|
-
justifyContent: 'center',
|
|
281
|
-
alignItems: 'center',
|
|
282
|
-
marginRight: 10
|
|
283
|
-
},
|
|
284
|
-
checkboxInner: {
|
|
285
|
-
width: 10,
|
|
286
|
-
height: 10,
|
|
287
|
-
borderRadius: 2,
|
|
288
|
-
backgroundColor: '#FFFFFF'
|
|
289
|
-
},
|
|
290
|
-
footerRow: {
|
|
291
|
-
flexDirection: 'row',
|
|
292
|
-
alignItems: 'center',
|
|
293
|
-
paddingHorizontal: 16,
|
|
294
|
-
paddingVertical: 12,
|
|
295
|
-
backgroundColor: '#FFFFFF',
|
|
296
|
-
borderTopWidth: 1,
|
|
297
|
-
borderTopColor: '#E2E8F0',
|
|
298
|
-
justifyContent: 'space-between'
|
|
299
|
-
},
|
|
300
|
-
footerBtn: {
|
|
301
|
-
paddingVertical: 8,
|
|
302
|
-
paddingHorizontal: 12
|
|
303
|
-
},
|
|
304
|
-
nextActionBtn: {
|
|
305
|
-
paddingHorizontal: 24,
|
|
306
|
-
paddingVertical: 10,
|
|
307
|
-
borderRadius: 8,
|
|
308
|
-
minWidth: 80,
|
|
309
|
-
justifyContent: 'center',
|
|
310
|
-
alignItems: 'center'
|
|
311
|
-
}
|
|
312
|
-
});
|
|
313
|
-
//# sourceMappingURL=PearlReaderScreen.js.map
|