@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.
Files changed (128) hide show
  1. package/dist/component/Basic/BasicContents.js +3 -1
  2. package/dist/component/Basic/MiniTestCard.js +11 -3
  3. package/dist/component/Basic/SelectedExamCnt.js +3 -0
  4. package/dist/component/Basic/SubCategoryList.d.ts +1 -1
  5. package/dist/component/Basic/SubCategoryList.js +28 -19
  6. package/dist/component/Grade/AllTags.d.ts +2 -2
  7. package/dist/component/Grade/AllTags.js +2 -2
  8. package/dist/component/Grade/JAllTags.d.ts +5 -0
  9. package/dist/component/Grade/JAllTags.js +45 -0
  10. package/dist/component/QuizSet/QuizOptionDrill.d.ts +2 -2
  11. package/dist/component/QuizSet/QuizOptionDrill.js +9 -5
  12. package/dist/component/Result/QuizFlatList.js +20 -7
  13. package/dist/component/SettingBtns/TransBtn.d.ts +4 -0
  14. package/dist/component/SettingBtns/TransBtn.js +119 -0
  15. package/dist/component/SubCagegoryList.js +182 -95
  16. package/dist/component/Tag5s.js +2 -2
  17. package/dist/component/TagBadge5s.js +14 -33
  18. package/dist/component/TagBadge5sPress.js +2 -2
  19. package/dist/functions/commonFilter.d.ts +0 -0
  20. package/dist/functions/commonFilter.js +12 -0
  21. package/dist/functions/createQuizFnc.d.ts +6 -13
  22. package/dist/functions/createQuizFnc.js +18 -18
  23. package/dist/functions/createQuizFncD.d.ts +18 -0
  24. package/dist/functions/createQuizFncD.js +80 -0
  25. package/dist/functions/createQuizFncJ.d.ts +9 -0
  26. package/dist/functions/createQuizFncJ.js +63 -0
  27. package/dist/functions/gradeFnc.js +1 -1
  28. package/dist/functions/questionFilter.d.ts +1 -3
  29. package/dist/functions/questionFilterD.d.ts +14 -0
  30. package/dist/functions/questionFilterD.js +79 -0
  31. package/dist/functions/questionFilterJ.d.ts +10 -0
  32. package/dist/functions/questionFilterJ.js +36 -0
  33. package/dist/functions/questionFilterJLPT.d.ts +5 -0
  34. package/dist/functions/questionFilterJLPT.js +17 -0
  35. package/dist/functions/questionFormat copy.d.ts +7 -0
  36. package/dist/functions/questionFormat copy.js +103 -0
  37. package/dist/functions/questionFormat.d.ts +2 -2
  38. package/dist/functions/questionFormatD.d.ts +7 -0
  39. package/dist/functions/questionFormatD.js +104 -0
  40. package/dist/functions/questionFormatJ.d.ts +8 -0
  41. package/dist/functions/questionFormatJ.js +95 -0
  42. package/dist/functions/tagFnc.js +14 -14
  43. package/dist/functions/tagFncD.d.ts +18 -0
  44. package/dist/functions/tagFncD.js +114 -0
  45. package/dist/functions/tagFncJ.d.ts +7 -0
  46. package/dist/functions/tagFncJ.js +44 -0
  47. package/dist/functions/tagFncJLPT.d.ts +5 -0
  48. package/dist/functions/tagFncJLPT.js +18 -0
  49. package/dist/hooks/basicHook.d.ts +3 -0
  50. package/dist/hooks/basicHook.js +20 -1
  51. package/dist/hooks/quizActionHook.d.ts +3 -3
  52. package/dist/hooks/quizActionHook.js +22 -5
  53. package/dist/hooks/quizHook.d.ts +9 -2
  54. package/dist/hooks/quizHook.js +51 -5
  55. package/dist/index.d.ts +4 -1
  56. package/dist/index.js +7 -1
  57. package/dist/page/BootPage.js +6 -6
  58. package/dist/page/DatailSettingPage.d.ts +3 -0
  59. package/dist/page/DatailSettingPage.js +25 -0
  60. package/dist/page/GetBadgePage.js +1 -1
  61. package/dist/page/GradePage.js +5 -2
  62. package/dist/page/GuidePage.d.ts +10 -0
  63. package/dist/page/GuidePage.js +112 -0
  64. package/dist/page/JDatailSettingPage.d.ts +3 -0
  65. package/dist/page/JDatailSettingPage.js +25 -0
  66. package/dist/page/JDetailSettingPage.d.ts +3 -0
  67. package/dist/page/JDetailSettingPage.js +51 -0
  68. package/dist/page/QuizPage.js +15 -69
  69. package/dist/page/QuizSetupPage.js +20 -8
  70. package/dist/page/ReportPage.js +1 -1
  71. package/dist/page/TestPage.js +15 -5
  72. package/dist/quiz/QuizContentDrill.d.ts +15 -0
  73. package/dist/quiz/QuizContentDrill.js +34 -0
  74. package/dist/quiz/QuizContentsDrill.d.ts +16 -0
  75. package/dist/quiz/QuizContentsDrill.js +70 -0
  76. package/dist/quiz/QuizContentsJLPT.d.ts +16 -0
  77. package/dist/quiz/QuizContentsJLPT.js +31 -0
  78. package/dist/quiz/Title.js +3 -1
  79. package/dist/quiz/answer/Answer.js +7 -6
  80. package/dist/quiz/answer/BlankBtn.js +7 -2
  81. package/dist/quiz/answer/Input/InputAnswerBtn.js +1 -1
  82. package/dist/quiz/answer/MultiChoice.js +2 -0
  83. package/dist/quiz/answer/NormalChoice.js +1 -1
  84. package/dist/quiz/check/NextQuizBtn.js +1 -0
  85. package/dist/quiz/check/SelectTag.js +21 -5
  86. package/dist/quiz/common/MyTextqqyy.js +1 -2
  87. package/dist/quiz/common/PageContainerWrap.d.ts +1 -1
  88. package/dist/quiz/common/RenderImgOrText.d.ts +4 -4
  89. package/dist/quiz/common/RenderImgOrText.js +7 -3
  90. package/dist/quiz/common/RubyText.d.ts +6 -1
  91. package/dist/quiz/common/RubyText.js +58 -39
  92. package/dist/quiz/common/ZoomableImage.d.ts +1 -0
  93. package/dist/quiz/common/ZoomableImage.js +2 -2
  94. package/dist/quiz/explain/Explain.js +4 -2
  95. package/dist/quiz/jAnswer/JAnswer.d.ts +8 -0
  96. package/dist/quiz/jAnswer/JAnswer.js +57 -0
  97. package/dist/quiz/jAnswer/JAnswerContents.d.ts +16 -0
  98. package/dist/quiz/jAnswer/JAnswerContents.js +82 -0
  99. package/dist/quiz/jQuestion/JQuestion.d.ts +8 -0
  100. package/dist/quiz/jQuestion/JQuestion.js +41 -0
  101. package/dist/quiz/jQuestion/JQuestionBottomText.d.ts +7 -0
  102. package/dist/quiz/jQuestion/JQuestionBottomText.js +46 -0
  103. package/dist/quiz/jQuestion/JQuestionText.d.ts +7 -0
  104. package/dist/quiz/jQuestion/JQuestionText.js +43 -0
  105. package/dist/quiz/jQuestion/QuizCnt.d.ts +3 -0
  106. package/dist/quiz/jQuestion/QuizCnt.js +44 -0
  107. package/dist/quiz/jQuestion/TimeLimit.d.ts +6 -0
  108. package/dist/quiz/jQuestion/TimeLimit.js +97 -0
  109. package/dist/quiz/question/Question.js +3 -1
  110. package/dist/quiz/setting/Above3BtnJ copy.d.ts +8 -0
  111. package/dist/quiz/setting/Above3BtnJ copy.js +78 -0
  112. package/dist/quiz/setting/Above3BtnJ.d.ts +8 -0
  113. package/dist/quiz/setting/Above3BtnJ.js +56 -0
  114. package/dist/quiz/setting/Bottom2BtnJ.d.ts +8 -0
  115. package/dist/quiz/setting/Bottom2BtnJ.js +86 -0
  116. package/dist/quiz/setting/Bottom3Btn.js +1 -23
  117. package/dist/quiz/setting/Bottom3BtnJ.d.ts +8 -0
  118. package/dist/quiz/setting/Bottom3BtnJ.js +78 -0
  119. package/dist/quiz/setting/GuideBtn.d.ts +8 -0
  120. package/dist/quiz/setting/GuideBtn.js +38 -0
  121. package/dist/quiz/setting/RepeatBtn.d.ts +6 -0
  122. package/dist/quiz/setting/RepeatBtn.js +77 -0
  123. package/dist/quiz/system/QuizContentDrill.d.ts +0 -0
  124. package/dist/quiz/system/QuizContentDrill.js +1 -0
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/dist/types/filterType.d.ts +15 -0
  127. package/dist/types/filterType.js +2 -0
  128. 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} subject={subject} index={index}/>
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 createQuizFnc_1 = require("../../functions/createQuizFnc");
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 quizList = (0, createQuizFnc_1.getMiniTestQuestions)(QuestionDB, subject.type, selectKey, quizCnt, outOfYearRange);
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
- subject: Db.SubjectInfo;
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 tagFnc_1 = require("../../functions/tagFnc");
23
+ var tagFncD_1 = require("../../functions/tagFncD");
26
24
  var Tag5s_1 = __importDefault(require("../Tag5s"));
27
- var createQuizFnc_1 = require("../../functions/createQuizFnc");
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, subject = _a.subject, index = _a.index;
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[subject.list]; });
35
- var activeIndex = (0, react_redux_1.useSelector)(function (state) { return state.setting.viewSet[subject.name].activeIndex; });
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
- var QuestionDB = (0, react_2.useQuery)(db_1.dQuestionSchema);
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 (subject.type === "unit")
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(subject.type, selectKey);
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: subject.name,
57
- type: subject.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 quizList = (0, createQuizFnc_1.getBasicQuizList)(QuestionDB, startCfg, selected);
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: tagFnc_1.getUnitSubTagLevelCnts,
92
- year: tagFnc_1.getYearSubTagLevelCnts,
97
+ unit: tagFncD_1.getUnitSubTagLevelCnts,
98
+ year: tagFncD_1.getYearSubTagLevelCnts,
93
99
  };
94
- var getTagFnc = getTagFunctions[subject.type];
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 subTags = getTagFnc(QuestionDB, selectKey, key, outOfYearRange);
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, tagFnc_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); }}/>);
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
  };
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- interface TagBadgeProps {
2
+ interface Props {
3
3
  }
4
- declare const TagBadge5s: React.FC<TagBadgeProps>;
4
+ declare const TagBadge5s: React.FC<Props>;
5
5
  export default TagBadge5s;
@@ -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 tagFnc_1 = require("../../functions/tagFnc");
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, tagFnc_1.countTagsByLevel)(tagLegels);
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,5 @@
1
+ import React from "react";
2
+ interface Props {
3
+ }
4
+ declare const JAllTags: React.FC<Props>;
5
+ export default JAllTags;
@@ -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;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
2
  interface QuizSetupProps {
3
3
  }
4
- declare const QuizSetup: React.FC<QuizSetupProps>;
5
- export default QuizSetup;
4
+ declare const QuizOption: React.FC<QuizSetupProps>;
5
+ export default QuizOption;
@@ -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 QuizSetup = function (_a) {
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
- {quizStartOption.map(function (O, i) {
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: 20,
44
+ marginBottom: 10,
41
45
  },
42
46
  title: {
43
47
  marginLeft: 5,
44
48
  },
45
49
  });
46
- exports.default = QuizSetup;
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 = String(quiz.yearId) + String(quiz.num);
19
- var question = "(".concat(i + 1, ") ").concat(quiz.question[0]);
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
- return { id: id, question: question, color: color, index: i, isCorrected: isCorrected };
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.questionBox}>
38
- <MyTextqqyy_1.default isNotSearch fsize="xs">
39
- {text}
40
- </MyTextqqyy_1.default>
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,4 @@
1
+ import React from "react";
2
+ type TransBtnProps = {};
3
+ declare const TransBtn: React.FC<TransBtnProps>;
4
+ export default TransBtn;
@@ -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;