@nakamura-123/pages 0.1.21 → 0.1.23
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/component/Basic/BasicContents.js +3 -1
- package/dist/component/Basic/MiniTestCard.js +11 -3
- package/dist/component/Basic/SelectedExamCnt.js +3 -0
- package/dist/component/Basic/SubCategoryList.d.ts +1 -1
- package/dist/component/Basic/SubCategoryList.js +28 -19
- package/dist/component/Grade/AllTags.d.ts +2 -2
- package/dist/component/Grade/AllTags.js +2 -2
- package/dist/component/Grade/JAllTags.d.ts +5 -0
- package/dist/component/Grade/JAllTags.js +45 -0
- package/dist/component/QuizSet/QuizOptionDrill.d.ts +2 -2
- package/dist/component/QuizSet/QuizOptionDrill.js +9 -5
- package/dist/component/Result/QuizFlatList.js +20 -7
- package/dist/component/SettingBtns/TransBtn.d.ts +4 -0
- package/dist/component/SettingBtns/TransBtn.js +119 -0
- package/dist/component/SubCagegoryList.js +182 -95
- package/dist/component/Tag5s.js +2 -2
- package/dist/component/TagBadge5s.js +14 -33
- package/dist/component/TagBadge5sPress.js +2 -2
- package/dist/functions/commonFilter.d.ts +0 -0
- package/dist/functions/commonFilter.js +12 -0
- package/dist/functions/createQuizFnc.d.ts +6 -13
- package/dist/functions/createQuizFnc.js +18 -18
- package/dist/functions/createQuizFncD.d.ts +18 -0
- package/dist/functions/createQuizFncD.js +80 -0
- package/dist/functions/createQuizFncJ.d.ts +9 -0
- package/dist/functions/createQuizFncJ.js +63 -0
- package/dist/functions/gradeFnc.js +1 -1
- package/dist/functions/questionFilter.d.ts +1 -3
- package/dist/functions/questionFilterD.d.ts +14 -0
- package/dist/functions/questionFilterD.js +79 -0
- package/dist/functions/questionFilterJ.d.ts +10 -0
- package/dist/functions/questionFilterJ.js +36 -0
- package/dist/functions/questionFilterJLPT.d.ts +5 -0
- package/dist/functions/questionFilterJLPT.js +17 -0
- package/dist/functions/questionFormat copy.d.ts +7 -0
- package/dist/functions/questionFormat copy.js +103 -0
- package/dist/functions/questionFormat.d.ts +2 -2
- package/dist/functions/questionFormatD.d.ts +7 -0
- package/dist/functions/questionFormatD.js +104 -0
- package/dist/functions/questionFormatJ.d.ts +8 -0
- package/dist/functions/questionFormatJ.js +95 -0
- package/dist/functions/tagFnc.js +14 -14
- package/dist/functions/tagFncD.d.ts +18 -0
- package/dist/functions/tagFncD.js +114 -0
- package/dist/functions/tagFncJ.d.ts +7 -0
- package/dist/functions/tagFncJ.js +44 -0
- package/dist/functions/tagFncJLPT.d.ts +5 -0
- package/dist/functions/tagFncJLPT.js +18 -0
- package/dist/hooks/basicHook.d.ts +3 -0
- package/dist/hooks/basicHook.js +20 -1
- package/dist/hooks/quizActionHook.d.ts +3 -3
- package/dist/hooks/quizActionHook.js +22 -5
- package/dist/hooks/quizHook.d.ts +9 -2
- package/dist/hooks/quizHook.js +51 -5
- package/dist/index.d.ts +4 -1
- package/dist/index.js +7 -1
- package/dist/page/BootPage.js +6 -6
- package/dist/page/DatailSettingPage.d.ts +3 -0
- package/dist/page/DatailSettingPage.js +25 -0
- package/dist/page/GetBadgePage.js +1 -1
- package/dist/page/GradePage.js +5 -2
- package/dist/page/GuidePage.d.ts +10 -0
- package/dist/page/GuidePage.js +112 -0
- package/dist/page/JDatailSettingPage.d.ts +3 -0
- package/dist/page/JDatailSettingPage.js +25 -0
- package/dist/page/JDetailSettingPage.d.ts +3 -0
- package/dist/page/JDetailSettingPage.js +51 -0
- package/dist/page/QuizPage.js +15 -69
- package/dist/page/QuizSetupPage.js +20 -8
- package/dist/page/ReportPage.js +1 -1
- package/dist/page/TestPage.js +15 -5
- package/dist/quiz/QuizContentDrill.d.ts +15 -0
- package/dist/quiz/QuizContentDrill.js +34 -0
- package/dist/quiz/QuizContentsDrill.d.ts +16 -0
- package/dist/quiz/QuizContentsDrill.js +70 -0
- package/dist/quiz/QuizContentsJLPT.d.ts +16 -0
- package/dist/quiz/QuizContentsJLPT.js +31 -0
- package/dist/quiz/Title.js +3 -1
- package/dist/quiz/answer/Answer.js +7 -6
- package/dist/quiz/answer/BlankBtn.js +7 -2
- package/dist/quiz/answer/Input/InputAnswerBtn.js +1 -1
- package/dist/quiz/answer/MultiChoice.js +2 -0
- package/dist/quiz/answer/NormalChoice.js +1 -1
- package/dist/quiz/check/NextQuizBtn.js +1 -0
- package/dist/quiz/check/SelectTag.js +21 -5
- package/dist/quiz/common/MyTextqqyy.js +1 -2
- package/dist/quiz/common/PageContainerWrap.d.ts +1 -1
- package/dist/quiz/common/RenderImgOrText.d.ts +4 -4
- package/dist/quiz/common/RenderImgOrText.js +7 -3
- package/dist/quiz/common/RubyText.d.ts +6 -1
- package/dist/quiz/common/RubyText.js +58 -39
- package/dist/quiz/common/ZoomableImage.d.ts +1 -0
- package/dist/quiz/common/ZoomableImage.js +2 -2
- package/dist/quiz/explain/Explain.js +4 -2
- package/dist/quiz/jAnswer/JAnswer.d.ts +8 -0
- package/dist/quiz/jAnswer/JAnswer.js +57 -0
- package/dist/quiz/jAnswer/JAnswerContents.d.ts +16 -0
- package/dist/quiz/jAnswer/JAnswerContents.js +82 -0
- package/dist/quiz/jQuestion/JQuestion.d.ts +8 -0
- package/dist/quiz/jQuestion/JQuestion.js +41 -0
- package/dist/quiz/jQuestion/JQuestionBottomText.d.ts +7 -0
- package/dist/quiz/jQuestion/JQuestionBottomText.js +46 -0
- package/dist/quiz/jQuestion/JQuestionText.d.ts +7 -0
- package/dist/quiz/jQuestion/JQuestionText.js +43 -0
- package/dist/quiz/jQuestion/QuizCnt.d.ts +3 -0
- package/dist/quiz/jQuestion/QuizCnt.js +44 -0
- package/dist/quiz/jQuestion/TimeLimit.d.ts +6 -0
- package/dist/quiz/jQuestion/TimeLimit.js +97 -0
- package/dist/quiz/question/Question.js +3 -1
- package/dist/quiz/setting/Above3BtnJ copy.d.ts +8 -0
- package/dist/quiz/setting/Above3BtnJ copy.js +78 -0
- package/dist/quiz/setting/Above3BtnJ.d.ts +8 -0
- package/dist/quiz/setting/Above3BtnJ.js +56 -0
- package/dist/quiz/setting/Bottom2BtnJ.d.ts +8 -0
- package/dist/quiz/setting/Bottom2BtnJ.js +86 -0
- package/dist/quiz/setting/Bottom3Btn.js +1 -23
- package/dist/quiz/setting/Bottom3BtnJ.d.ts +8 -0
- package/dist/quiz/setting/Bottom3BtnJ.js +78 -0
- package/dist/quiz/setting/GuideBtn.d.ts +8 -0
- package/dist/quiz/setting/GuideBtn.js +38 -0
- package/dist/quiz/setting/RepeatBtn.d.ts +6 -0
- package/dist/quiz/setting/RepeatBtn.js +77 -0
- package/dist/quiz/system/QuizContentDrill.d.ts +0 -0
- package/dist/quiz/system/QuizContentDrill.js +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/filterType.d.ts +15 -0
- package/dist/types/filterType.js +2 -0
- package/package.json +2 -2
|
@@ -86,6 +86,8 @@ var BasicPage = function (_a) {
|
|
|
86
86
|
subject: subject.name,
|
|
87
87
|
type: subject.type,
|
|
88
88
|
category: selectKey,
|
|
89
|
+
tagName: subject.tag,
|
|
90
|
+
system: subject.system,
|
|
89
91
|
lesson: {
|
|
90
92
|
title: selectedList.label + selectedList.title,
|
|
91
93
|
key: ALL_NUM,
|
|
@@ -102,7 +104,7 @@ var BasicPage = function (_a) {
|
|
|
102
104
|
<common_1.RoundRectangle title={categoryName} style={styles.categoryName}/>
|
|
103
105
|
<SelectedExamCnt_1.default type={subject.type}/>
|
|
104
106
|
<common_1.HelpMark name="basicList" marginTop={20} top={-23}/>
|
|
105
|
-
<SubCategoryList_1.default navigation={navigation}
|
|
107
|
+
<SubCategoryList_1.default navigation={navigation} topSubject={subject} index={index}/>
|
|
106
108
|
<common_1.HelpMark name="miniTest" marginTop={10} top={-23}/>
|
|
107
109
|
|
|
108
110
|
<MiniTestCard_1.default navigation={navigation} subject={subject} index={index}/>
|
|
@@ -35,8 +35,10 @@ var react_i18next_1 = require("react-i18next");
|
|
|
35
35
|
var db_1 = require("@nakamura-123/db");
|
|
36
36
|
var stores_1 = require("@nakamura-123/stores");
|
|
37
37
|
var testFnc_1 = require("../../functions/testFnc");
|
|
38
|
-
var
|
|
38
|
+
var createQuizFncD_1 = require("../../functions/createQuizFncD");
|
|
39
39
|
var Paw5s_1 = __importDefault(require("./Paw5s"));
|
|
40
|
+
var basicHook_1 = require("../../hooks/basicHook");
|
|
41
|
+
var createQuizFncJ_1 = require("../../functions/createQuizFncJ");
|
|
40
42
|
var TestComponent = function (_a) {
|
|
41
43
|
var navigation = _a.navigation, subject = _a.subject, index = _a.index;
|
|
42
44
|
var dispatch = (0, react_redux_1.useDispatch)();
|
|
@@ -48,8 +50,9 @@ var TestComponent = function (_a) {
|
|
|
48
50
|
var quizCnt = selectedCategory.miniTestCnt;
|
|
49
51
|
var testTitle = selectedCategory.title + t("basic.miniTest");
|
|
50
52
|
var testDB = (0, react_2.useQuery)(db_1.MiniTestSchema);
|
|
51
|
-
var QuestionDB = (0, react_2.useQuery)(db_1.dQuestionSchema);
|
|
52
53
|
var outOfYearRange = (0, react_redux_1.useSelector)(function (state) { return state.quizCfg.startCfg.outOfYearRange; });
|
|
54
|
+
// const QuestionDB = useQuery(DQuestionSchema);
|
|
55
|
+
var QuestionDBInfo = (0, basicHook_1.useGetQuestionQuery)();
|
|
53
56
|
var levels = (0, react_1.useMemo)(function () {
|
|
54
57
|
return (0, testFnc_1.getMiniTestLevelCnts)(testDB, subject.name, selectKey);
|
|
55
58
|
}, [subject.name, selectKey]);
|
|
@@ -67,12 +70,17 @@ var TestComponent = function (_a) {
|
|
|
67
70
|
subject: subject.name,
|
|
68
71
|
type: "miniTest",
|
|
69
72
|
category: selectKey,
|
|
73
|
+
tagName: subject.tag,
|
|
74
|
+
system: subject.system,
|
|
70
75
|
lesson: { title: testTitle, key: quizCnt },
|
|
71
76
|
},
|
|
72
77
|
});
|
|
73
78
|
dispatch({ type: "quiz/resetCurrentInfo" });
|
|
74
79
|
// クイズ作成
|
|
75
|
-
var
|
|
80
|
+
var query = QuestionDBInfo.query, system = QuestionDBInfo.system;
|
|
81
|
+
var quizList = system === "JLPT"
|
|
82
|
+
? (0, createQuizFncJ_1.getMiniTestQuestionsJ)(query, selectKey, quizCnt, subject.tag)
|
|
83
|
+
: (0, createQuizFncD_1.getMiniTestQuestions)(query, subject.type, selectKey, quizCnt, outOfYearRange);
|
|
76
84
|
dispatch(stores_1.saveStorage.deleteQuizInStorage(subject.name));
|
|
77
85
|
dispatch({ type: "quiz/setQuizList", payload: quizList });
|
|
78
86
|
navigation.navigate("Quiz");
|
|
@@ -12,6 +12,9 @@ var SelectedExamCnt = function (_a) {
|
|
|
12
12
|
var type = _a.type;
|
|
13
13
|
var t = (0, react_i18next_1.useTranslation)().t;
|
|
14
14
|
var isRangeYear = (0, react_redux_1.useSelector)(function (state) { var _a; return (_a = state.app.appSetting.setting) === null || _a === void 0 ? void 0 : _a.basic.isRangeYearInUnit; }) || false;
|
|
15
|
+
var isJLPTSystem = (0, react_redux_1.useSelector)(function (state) { return state.app.appSetting.setting.appSystem === "JLPT"; });
|
|
16
|
+
if (isJLPTSystem)
|
|
17
|
+
return null;
|
|
15
18
|
if (type !== "unit" || !isRangeYear)
|
|
16
19
|
return null;
|
|
17
20
|
var outOfYearRange = (0, react_redux_1.useSelector)(function (state) { return state.quizCfg.startCfg.outOfYearRange; });
|
|
@@ -3,7 +3,7 @@ import { StackNavigationProp } from "@react-navigation/stack";
|
|
|
3
3
|
import { Nav, Db } from "@nakamura-123/types";
|
|
4
4
|
interface SubCategoryListProps {
|
|
5
5
|
navigation: StackNavigationProp<Nav.RootStackParamList>;
|
|
6
|
-
|
|
6
|
+
topSubject: Db.SubjectInfo;
|
|
7
7
|
index: number;
|
|
8
8
|
}
|
|
9
9
|
declare const SubCategoryList: React.FC<SubCategoryListProps>;
|
|
@@ -16,45 +16,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var react_1 = __importDefault(require("react"));
|
|
18
18
|
var react_native_1 = require("react-native");
|
|
19
|
-
var react_2 = require("@realm/react");
|
|
20
19
|
var react_redux_1 = require("react-redux");
|
|
21
20
|
var common_1 = require("@nakamura-123/common");
|
|
22
|
-
var db_1 = require("@nakamura-123/db");
|
|
23
21
|
var stores_1 = require("@nakamura-123/stores");
|
|
24
22
|
var SubCategoryLeft_1 = __importDefault(require("./SubCategoryLeft"));
|
|
25
|
-
var
|
|
23
|
+
var tagFncD_1 = require("../../functions/tagFncD");
|
|
26
24
|
var Tag5s_1 = __importDefault(require("../Tag5s"));
|
|
27
|
-
var
|
|
25
|
+
var createQuizFncD_1 = require("../../functions/createQuizFncD");
|
|
28
26
|
var quizActionHook_1 = require("../../hooks/quizActionHook");
|
|
27
|
+
var basicHook_1 = require("../../hooks/basicHook");
|
|
28
|
+
var createQuizFncJ_1 = require("../../functions/createQuizFncJ");
|
|
29
|
+
var tagFncJ_1 = require("../../functions/tagFncJ");
|
|
29
30
|
var SubCategoryList = function (_a) {
|
|
30
31
|
var _b;
|
|
31
|
-
var navigation = _a.navigation,
|
|
32
|
+
var navigation = _a.navigation, topSubject = _a.topSubject, index = _a.index;
|
|
32
33
|
var dispatch = (0, react_redux_1.useDispatch)();
|
|
33
34
|
// Redux states
|
|
34
|
-
var categoryList = (0, react_redux_1.useSelector)(function (state) { return state.app[
|
|
35
|
-
var
|
|
36
|
-
var preSelect = (0, react_redux_1.useSelector)(function (state) { return state.setting.viewSet[subject.name].preSelect; });
|
|
35
|
+
var categoryList = (0, react_redux_1.useSelector)(function (state) { return state.app[topSubject.list]; });
|
|
36
|
+
var preSelect = (0, react_redux_1.useSelector)(function (state) { return state.setting.viewSet[topSubject.name].preSelect; });
|
|
37
37
|
var outOfYearRange = (0, react_redux_1.useSelector)(function (state) { return state.quizCfg.startCfg.outOfYearRange; });
|
|
38
38
|
var startCfg = (0, react_redux_1.useSelector)(function (state) { return state.quizCfg.startCfg; });
|
|
39
39
|
// Derived states
|
|
40
40
|
var selectedList = categoryList[index];
|
|
41
41
|
var selectKey = selectedList.key;
|
|
42
42
|
var subCategories = (_b = selectedList.sub) !== null && _b !== void 0 ? _b : [];
|
|
43
|
-
|
|
43
|
+
// const QuestionDB = useQuery(DQuestionSchema);
|
|
44
|
+
var QuestionDBInfo = (0, basicHook_1.useGetQuestionQuery)();
|
|
44
45
|
var useStartQuiz = (0, quizActionHook_1.useStartQuizAction)();
|
|
45
46
|
var getLessonTitle = function (index) {
|
|
46
|
-
if (
|
|
47
|
+
if (topSubject.type === "unit")
|
|
47
48
|
return "".concat(selectedList.label, " ").concat(subCategories[index].title);
|
|
48
49
|
return "".concat(selectedList.title, " ").concat(subCategories[index].title);
|
|
49
50
|
};
|
|
50
51
|
// 課金ロック
|
|
51
|
-
var isLocked = common_1.commonHook.useIsLocked(
|
|
52
|
+
var isLocked = common_1.commonHook.useIsLocked(topSubject.type, selectKey);
|
|
52
53
|
// クイズ開始前の共通処理
|
|
53
54
|
var handleSetLesson = function (index) {
|
|
54
55
|
var lesson = __assign(__assign({}, subCategories[index]), { title: getLessonTitle(index) });
|
|
55
56
|
var selected = {
|
|
56
|
-
subject:
|
|
57
|
-
type:
|
|
57
|
+
subject: topSubject.name,
|
|
58
|
+
type: topSubject.type,
|
|
59
|
+
tagName: topSubject.tag,
|
|
60
|
+
system: topSubject.system,
|
|
58
61
|
category: selectKey,
|
|
59
62
|
lesson: lesson,
|
|
60
63
|
};
|
|
@@ -75,7 +78,10 @@ var SubCategoryList = function (_a) {
|
|
|
75
78
|
var selected = handleSetLesson(index);
|
|
76
79
|
if (!selected)
|
|
77
80
|
return;
|
|
78
|
-
var
|
|
81
|
+
var system = QuestionDBInfo.system, query = QuestionDBInfo.query;
|
|
82
|
+
var quizList = system === "JLPT"
|
|
83
|
+
? (0, createQuizFncJ_1.getBasicQuizListJ)(query, startCfg, selected)
|
|
84
|
+
: (0, createQuizFncD_1.getBasicQuizList)(query, startCfg, selected);
|
|
79
85
|
var subject = selected.subject, category = selected.category, lesson = selected.lesson;
|
|
80
86
|
dispatch({
|
|
81
87
|
type: "quiz/saveBasicPreSelect",
|
|
@@ -88,16 +94,19 @@ var SubCategoryList = function (_a) {
|
|
|
88
94
|
};
|
|
89
95
|
// タグを取得する関数を選ぶ
|
|
90
96
|
var getTagFunctions = {
|
|
91
|
-
unit:
|
|
92
|
-
year:
|
|
97
|
+
unit: tagFncD_1.getUnitSubTagLevelCnts,
|
|
98
|
+
year: tagFncD_1.getYearSubTagLevelCnts,
|
|
93
99
|
};
|
|
94
|
-
var getTagFnc = getTagFunctions[
|
|
100
|
+
var getTagFnc = getTagFunctions[topSubject.type];
|
|
95
101
|
return (<react_native_1.View style={{ flex: 1 }}>
|
|
96
102
|
{subCategories.map(function (_a, i) {
|
|
97
103
|
var key = _a.key, title = _a.title;
|
|
98
|
-
var
|
|
104
|
+
var system = QuestionDBInfo.system, query = QuestionDBInfo.query;
|
|
105
|
+
var subTags = system === "JLPT"
|
|
106
|
+
? (0, tagFncJ_1.getUnitSubTagLevelCntsJ)(query, selectKey, key, topSubject.tag)
|
|
107
|
+
: getTagFnc(query, selectKey, key, outOfYearRange);
|
|
99
108
|
var isPreSelect = preSelect.category === selectKey && preSelect.lessonKey === key;
|
|
100
|
-
return (<common_1.RectangleCard key={key} title={title} left={<SubCategoryLeft_1.default rate={(0,
|
|
109
|
+
return (<common_1.RectangleCard key={key} title={title} left={<SubCategoryLeft_1.default rate={(0, tagFncD_1.getCategoryRate)(subTags)} isLocked={isLocked}/>} bottom={<Tag5s_1.default tags={subTags}/>} onPress={function () { return handleSubCategory(i); }} borderColor={isPreSelect ? "green" : undefined} outerStyle={styles.cardSpacing} onLongPress={function () { return handleLongPress(i); }}/>);
|
|
101
110
|
})}
|
|
102
111
|
</react_native_1.View>);
|
|
103
112
|
};
|
|
@@ -8,11 +8,11 @@ var react_native_1 = require("react-native");
|
|
|
8
8
|
var react_2 = require("@realm/react");
|
|
9
9
|
var db_1 = require("@nakamura-123/db");
|
|
10
10
|
var common_1 = require("@nakamura-123/common");
|
|
11
|
-
var
|
|
11
|
+
var tagFncD_1 = require("../../functions/tagFncD");
|
|
12
12
|
var TagBadge5s = function (_a) {
|
|
13
13
|
var TagDB = (0, react_2.useQuery)(db_1.TagSchema);
|
|
14
14
|
var tagLegels = TagDB.map(function (tag) { return tag.level; });
|
|
15
|
-
var tag5Infos = (0,
|
|
15
|
+
var tag5Infos = (0, tagFncD_1.countTagsByLevel)(tagLegels);
|
|
16
16
|
return (<react_native_1.View style={styles.container}>
|
|
17
17
|
{tag5Infos.map(function (tag, i) { return (<common_1.Badge key={i} name={String(tag.cnt)} icon={"tag"} circleColor={tag.color} style={styles.badge}/>); })}
|
|
18
18
|
</react_native_1.View>);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var react_1 = __importDefault(require("react"));
|
|
7
|
+
var react_native_1 = require("react-native");
|
|
8
|
+
var react_2 = require("@realm/react");
|
|
9
|
+
var db_1 = require("@nakamura-123/db");
|
|
10
|
+
var common_1 = require("@nakamura-123/common");
|
|
11
|
+
var tagFncD_1 = require("../../functions/tagFncD");
|
|
12
|
+
var tagFncJ_1 = require("../../functions/tagFncJ");
|
|
13
|
+
var JAllTags = function (_a) {
|
|
14
|
+
var JQuestionDB = (0, react_2.useQuery)(db_1.JQuestionSchema);
|
|
15
|
+
var tagLevelsBasic = (0, tagFncJ_1.getTagNameFilterJ)(JQuestionDB, "basicTag");
|
|
16
|
+
var tagLevelsListen = (0, tagFncJ_1.getTagNameFilterJ)(JQuestionDB, "listenTag");
|
|
17
|
+
var tag5InfosBasic = (0, tagFncD_1.countTagsByLevel)(tagLevelsBasic);
|
|
18
|
+
var tag5InfosListen = (0, tagFncD_1.countTagsByLevel)(tagLevelsListen);
|
|
19
|
+
return (<react_native_1.View style={styles.container}>
|
|
20
|
+
<common_1.MyText>きほん</common_1.MyText>
|
|
21
|
+
<react_native_1.View style={styles.tagBox}>
|
|
22
|
+
{tag5InfosBasic.map(function (tag, i) { return (<common_1.Badge key={i} name={String(tag.cnt)} icon={"tag"} circleColor={tag.color} style={styles.badge}/>); })}
|
|
23
|
+
</react_native_1.View>
|
|
24
|
+
<common_1.MyText>ちょうかい</common_1.MyText>
|
|
25
|
+
<react_native_1.View style={styles.tagBox}>
|
|
26
|
+
{tag5InfosListen.map(function (tag, i) { return (<common_1.Badge key={i} name={String(tag.cnt)} icon={"tag"} circleColor={tag.color} style={styles.badge}/>); })}
|
|
27
|
+
</react_native_1.View>
|
|
28
|
+
</react_native_1.View>);
|
|
29
|
+
};
|
|
30
|
+
var styles = react_native_1.StyleSheet.create({
|
|
31
|
+
container: {
|
|
32
|
+
marginVertical: 10,
|
|
33
|
+
},
|
|
34
|
+
tagBox: {
|
|
35
|
+
flexDirection: "row",
|
|
36
|
+
justifyContent: "space-between",
|
|
37
|
+
width: "100%",
|
|
38
|
+
marginTop: 5,
|
|
39
|
+
},
|
|
40
|
+
badge: {
|
|
41
|
+
borderWidth: 0,
|
|
42
|
+
backgroundColor: "transparent",
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
exports.default = JAllTags;
|
|
@@ -9,19 +9,23 @@ var react_i18next_1 = require("react-i18next");
|
|
|
9
9
|
var react_redux_1 = require("react-redux");
|
|
10
10
|
var common_1 = require("@nakamura-123/common");
|
|
11
11
|
var lib_1 = require("@nakamura-123/lib");
|
|
12
|
-
var quizStartOption = lib_1.startOption.dQuizStartOption;
|
|
13
12
|
var stores_1 = require("@nakamura-123/stores");
|
|
14
|
-
var
|
|
13
|
+
var QuizOption = function (_a) {
|
|
15
14
|
var t = (0, react_i18next_1.useTranslation)().t;
|
|
16
15
|
// 設定の選択
|
|
17
16
|
var dispatch = (0, react_redux_1.useDispatch)();
|
|
17
|
+
var selected = (0, react_redux_1.useSelector)(function (state) { return state.quiz.selected; });
|
|
18
|
+
var system = selected.system || "drill";
|
|
18
19
|
var storeOption = (0, react_redux_1.useSelector)(function (state) { return state.quizCfg.startCfg.option; });
|
|
19
20
|
var handleSelect = function (type, value) {
|
|
20
21
|
dispatch(stores_1.cfgAction.selectOption({ key: type, value: value }));
|
|
21
22
|
};
|
|
23
|
+
var quizOption = system === "drill"
|
|
24
|
+
? lib_1.startOption.dQuizStartOption
|
|
25
|
+
: lib_1.startOption.jQuizStartOption;
|
|
22
26
|
return (<react_native_1.View style={styles.container}>
|
|
23
27
|
<common_1.HelpMark name="quizOption.tag"/>
|
|
24
|
-
{
|
|
28
|
+
{quizOption.map(function (O, i) {
|
|
25
29
|
var type = O.type, options = O.options;
|
|
26
30
|
var selectedValue = storeOption[type];
|
|
27
31
|
var selectedIndex = options.findIndex(function (o) { return o.value === selectedValue; });
|
|
@@ -37,10 +41,10 @@ var QuizSetup = function (_a) {
|
|
|
37
41
|
var styles = react_native_1.StyleSheet.create({
|
|
38
42
|
container: {
|
|
39
43
|
width: "100%",
|
|
40
|
-
marginBottom:
|
|
44
|
+
marginBottom: 10,
|
|
41
45
|
},
|
|
42
46
|
title: {
|
|
43
47
|
marginLeft: 5,
|
|
44
48
|
},
|
|
45
49
|
});
|
|
46
|
-
exports.default =
|
|
50
|
+
exports.default = QuizOption;
|
|
@@ -9,17 +9,22 @@ var react_redux_1 = require("react-redux");
|
|
|
9
9
|
var lib_1 = require("@nakamura-123/lib");
|
|
10
10
|
var common_1 = require("@nakamura-123/common");
|
|
11
11
|
var MyTextqqyy_1 = __importDefault(require("../../quiz/common/MyTextqqyy"));
|
|
12
|
+
var RubyText_1 = __importDefault(require("../../quiz/common/RubyText"));
|
|
12
13
|
var QuizFlatList = function (_a) {
|
|
13
14
|
var navigation = _a.navigation;
|
|
14
15
|
var dispatch = (0, react_redux_1.useDispatch)();
|
|
15
16
|
// 01_Redux からデータを取得(useSelector を使用)
|
|
16
17
|
var quizList = (0, react_redux_1.useSelector)(function (state) { return state.quiz.quizList; });
|
|
17
18
|
var listData = quizList.map(function (quiz, i) {
|
|
18
|
-
var id =
|
|
19
|
-
|
|
19
|
+
var id = quiz.system === "JLPT"
|
|
20
|
+
? quiz.quizId
|
|
21
|
+
: String(quiz.yearId) + String(quiz.num);
|
|
22
|
+
var questionText = quiz.system === "JLPT" ? quiz.question : quiz.question[0];
|
|
23
|
+
var question = "(".concat(i + 1, ") ").concat(questionText);
|
|
20
24
|
var color = lib_1.tagLevels.filter(function (item) { return item.level === quiz.tag; })[0].color;
|
|
21
25
|
var isCorrected = quiz.isCorrected;
|
|
22
|
-
|
|
26
|
+
var system = quiz.system;
|
|
27
|
+
return { id: id, question: question, color: color, index: i, isCorrected: isCorrected, system: system };
|
|
23
28
|
});
|
|
24
29
|
// 02_リストアイテムのレンダリング
|
|
25
30
|
var renderItem = function (_a) {
|
|
@@ -34,10 +39,12 @@ var QuizFlatList = function (_a) {
|
|
|
34
39
|
<common_1.Icon5 name={icon} size={11} color={iconColor}/>
|
|
35
40
|
</react_native_1.View>
|
|
36
41
|
</react_native_1.View>
|
|
37
|
-
<react_native_1.View style={styles.
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
<react_native_1.View style={styles.questionBoxJ}>
|
|
43
|
+
{item.system === "JLPT" ? (<RubyText_1.default fsize="sm" isNoWrap>
|
|
44
|
+
{text}
|
|
45
|
+
</RubyText_1.default>) : (<MyTextqqyy_1.default isNotSearch fsize="xs">
|
|
46
|
+
{text}
|
|
47
|
+
</MyTextqqyy_1.default>)}
|
|
41
48
|
</react_native_1.View>
|
|
42
49
|
</react_native_1.TouchableOpacity>);
|
|
43
50
|
};
|
|
@@ -72,6 +79,12 @@ var styles = react_native_1.StyleSheet.create({
|
|
|
72
79
|
justifyContent: "center",
|
|
73
80
|
height: 50,
|
|
74
81
|
},
|
|
82
|
+
questionBoxJ: {
|
|
83
|
+
marginLeft: 5,
|
|
84
|
+
width: "90%",
|
|
85
|
+
height: "100%",
|
|
86
|
+
justifyContent: "center",
|
|
87
|
+
},
|
|
75
88
|
questionBox: {
|
|
76
89
|
marginLeft: 5,
|
|
77
90
|
width: "90%",
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
var react_1 = __importStar(require("react"));
|
|
30
|
+
var react_native_1 = require("react-native");
|
|
31
|
+
var i18next_1 = __importDefault(require("i18next"));
|
|
32
|
+
var common_1 = require("@nakamura-123/common");
|
|
33
|
+
var lib_1 = require("@nakamura-123/lib");
|
|
34
|
+
var TransBtn = function (_a) {
|
|
35
|
+
var _b = (0, react_1.useState)(false), modalVisible = _b[0], setModalVisible = _b[1];
|
|
36
|
+
var handlePress = function () {
|
|
37
|
+
setModalVisible(true);
|
|
38
|
+
};
|
|
39
|
+
var handleLanguageSelect = function (language) {
|
|
40
|
+
i18next_1.default.changeLanguage(language); // 言語を切り替える
|
|
41
|
+
setModalVisible(false);
|
|
42
|
+
};
|
|
43
|
+
return (<react_native_1.View style={styles.container}>
|
|
44
|
+
<common_1.IconInCircle name="language" cStyle={styles.button} onPress={handlePress}/>
|
|
45
|
+
<react_native_1.Modal transparent={true} visible={modalVisible} animationType="slide" onRequestClose={function () { return setModalVisible(false); }}>
|
|
46
|
+
<react_native_1.View style={styles.modalContainer}>
|
|
47
|
+
<react_native_1.View style={styles.modalContent}>
|
|
48
|
+
<react_native_1.Text style={styles.modalTitle}>Select Language</react_native_1.Text>
|
|
49
|
+
<react_native_1.TouchableOpacity style={styles.modalButton} onPress={function () { return handleLanguageSelect("en"); }} // 英語を選択
|
|
50
|
+
>
|
|
51
|
+
<react_native_1.Text style={styles.modalButtonText}>English</react_native_1.Text>
|
|
52
|
+
</react_native_1.TouchableOpacity>
|
|
53
|
+
<react_native_1.TouchableOpacity style={styles.modalButton} onPress={function () { return handleLanguageSelect("ja"); }} // 日本語を選択
|
|
54
|
+
>
|
|
55
|
+
<react_native_1.Text style={styles.modalButtonText}>Japanese</react_native_1.Text>
|
|
56
|
+
</react_native_1.TouchableOpacity>
|
|
57
|
+
<react_native_1.TouchableOpacity style={styles.modalCloseButton} onPress={function () { return setModalVisible(false); }}>
|
|
58
|
+
<react_native_1.Text style={styles.modalCloseButtonText}>Close</react_native_1.Text>
|
|
59
|
+
</react_native_1.TouchableOpacity>
|
|
60
|
+
</react_native_1.View>
|
|
61
|
+
</react_native_1.View>
|
|
62
|
+
</react_native_1.Modal>
|
|
63
|
+
</react_native_1.View>);
|
|
64
|
+
};
|
|
65
|
+
var styles = react_native_1.StyleSheet.create({
|
|
66
|
+
container: { marginRight: 10 },
|
|
67
|
+
button: {
|
|
68
|
+
borderWidth: 2,
|
|
69
|
+
borderColor: lib_1.colors.light,
|
|
70
|
+
},
|
|
71
|
+
text: {
|
|
72
|
+
color: "#FFFFFF",
|
|
73
|
+
fontSize: 16,
|
|
74
|
+
fontWeight: "bold",
|
|
75
|
+
},
|
|
76
|
+
modalContainer: {
|
|
77
|
+
flex: 1,
|
|
78
|
+
justifyContent: "center",
|
|
79
|
+
alignItems: "center",
|
|
80
|
+
backgroundColor: "rgba(0, 0, 0, 0.5)",
|
|
81
|
+
},
|
|
82
|
+
modalContent: {
|
|
83
|
+
width: 300,
|
|
84
|
+
padding: 20,
|
|
85
|
+
backgroundColor: "#fff",
|
|
86
|
+
borderRadius: 10,
|
|
87
|
+
alignItems: "center",
|
|
88
|
+
},
|
|
89
|
+
modalTitle: {
|
|
90
|
+
fontSize: 18,
|
|
91
|
+
fontWeight: "bold",
|
|
92
|
+
marginBottom: 20,
|
|
93
|
+
},
|
|
94
|
+
modalButton: {
|
|
95
|
+
padding: 10,
|
|
96
|
+
backgroundColor: lib_1.colors.light,
|
|
97
|
+
borderRadius: 5,
|
|
98
|
+
marginVertical: 5,
|
|
99
|
+
width: "100%",
|
|
100
|
+
alignItems: "center",
|
|
101
|
+
},
|
|
102
|
+
modalButtonText: {
|
|
103
|
+
color: "#000",
|
|
104
|
+
fontSize: 16,
|
|
105
|
+
},
|
|
106
|
+
modalCloseButton: {
|
|
107
|
+
marginTop: 10,
|
|
108
|
+
padding: 10,
|
|
109
|
+
backgroundColor: "#ccc",
|
|
110
|
+
borderRadius: 5,
|
|
111
|
+
width: "100%",
|
|
112
|
+
alignItems: "center",
|
|
113
|
+
},
|
|
114
|
+
modalCloseButtonText: {
|
|
115
|
+
color: "#000",
|
|
116
|
+
fontSize: 16,
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
exports.default = TransBtn;
|