@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
|
@@ -0,0 +1,41 @@
|
|
|
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 lib_1 = require("@nakamura-123/lib");
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var react_native_1 = require("react-native");
|
|
9
|
+
var TimeLimit_1 = __importDefault(require("./TimeLimit"));
|
|
10
|
+
var QuizCnt_1 = __importDefault(require("./QuizCnt"));
|
|
11
|
+
var JQuestionText_1 = __importDefault(require("./JQuestionText"));
|
|
12
|
+
var quizHook_1 = require("../../hooks/quizHook");
|
|
13
|
+
var JQuestionBottomText_1 = __importDefault(require("./JQuestionBottomText"));
|
|
14
|
+
var Above3BtnJ_1 = __importDefault(require("../setting/Above3BtnJ"));
|
|
15
|
+
var JQuestion = function (_a) {
|
|
16
|
+
var navigation = _a.navigation;
|
|
17
|
+
var question = (0, quizHook_1.useQuestionDataJ)();
|
|
18
|
+
return (<react_native_1.View>
|
|
19
|
+
<react_native_1.View style={styles.container}>
|
|
20
|
+
<QuizCnt_1.default />
|
|
21
|
+
<TimeLimit_1.default timeLimit={question === null || question === void 0 ? void 0 : question.timeLimit}/>
|
|
22
|
+
<JQuestionText_1.default question={question}/>
|
|
23
|
+
<JQuestionBottomText_1.default question={question}/>
|
|
24
|
+
</react_native_1.View>
|
|
25
|
+
<Above3BtnJ_1.default navigation={navigation}/>
|
|
26
|
+
</react_native_1.View>);
|
|
27
|
+
};
|
|
28
|
+
var styles = react_native_1.StyleSheet.create({
|
|
29
|
+
container: {
|
|
30
|
+
backgroundColor: lib_1.colors.bkBeige,
|
|
31
|
+
alignItems: "center",
|
|
32
|
+
height: 270,
|
|
33
|
+
// marginTop: 0,
|
|
34
|
+
paddingHorizontal: 10,
|
|
35
|
+
},
|
|
36
|
+
text: {
|
|
37
|
+
fontSize: 18,
|
|
38
|
+
color: "#333",
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
exports.default = JQuestion;
|
|
@@ -0,0 +1,46 @@
|
|
|
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 quizHook_1 = require("../../hooks/quizHook");
|
|
9
|
+
var RubyText_1 = __importDefault(require("../common/RubyText"));
|
|
10
|
+
var JQuestionBottomText = function (_a) {
|
|
11
|
+
var question = _a.question;
|
|
12
|
+
var mode = (0, quizHook_1.useGetMode)();
|
|
13
|
+
var form = question === null || question === void 0 ? void 0 : question.form;
|
|
14
|
+
var answerText = getAnswerText(question, form);
|
|
15
|
+
if (mode === "quiz")
|
|
16
|
+
return null;
|
|
17
|
+
return (<react_native_1.View style={styles.container}>
|
|
18
|
+
<RubyText_1.default>{answerText}</RubyText_1.default>
|
|
19
|
+
</react_native_1.View>);
|
|
20
|
+
};
|
|
21
|
+
var getAnswerText = function (question, form) {
|
|
22
|
+
if (!question || !form)
|
|
23
|
+
return "";
|
|
24
|
+
var enSentence = question.enSentence, enWord = question.enWord, jpWord = question.jpWord;
|
|
25
|
+
var enSentenceForms = ["basicSelImg", "listenSelImg"];
|
|
26
|
+
var enWordForms = ["basicSelEn", "listenSelEn"];
|
|
27
|
+
var jpWordForms = ["basicSelJp", "listenSelJp"];
|
|
28
|
+
if (enSentenceForms.includes(form))
|
|
29
|
+
return enSentence;
|
|
30
|
+
if (enWordForms.includes(form))
|
|
31
|
+
return enWord;
|
|
32
|
+
if (jpWordForms.includes(form))
|
|
33
|
+
return jpWord;
|
|
34
|
+
return enWord; // fallback
|
|
35
|
+
};
|
|
36
|
+
var styles = react_native_1.StyleSheet.create({
|
|
37
|
+
container: {
|
|
38
|
+
padding: 10,
|
|
39
|
+
alignItems: "center",
|
|
40
|
+
},
|
|
41
|
+
text: {
|
|
42
|
+
fontSize: 14,
|
|
43
|
+
color: "#333",
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
exports.default = JQuestionBottomText;
|
|
@@ -0,0 +1,43 @@
|
|
|
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 RubyText_1 = __importDefault(require("../common/RubyText"));
|
|
9
|
+
var RepeatBtn_1 = __importDefault(require("../setting/RepeatBtn"));
|
|
10
|
+
var quizHook_1 = require("../../hooks/quizHook");
|
|
11
|
+
var JQuestionText = function (_a) {
|
|
12
|
+
var question = _a.question;
|
|
13
|
+
var mode = (0, quizHook_1.useGetMode)();
|
|
14
|
+
if (!question)
|
|
15
|
+
return null;
|
|
16
|
+
var quizText = question.question;
|
|
17
|
+
var form = question === null || question === void 0 ? void 0 : question.form;
|
|
18
|
+
var listenForms = [
|
|
19
|
+
"listenSelImg",
|
|
20
|
+
"listenSelEn",
|
|
21
|
+
"listenSelJp",
|
|
22
|
+
];
|
|
23
|
+
var isListenForm = listenForms.includes(form);
|
|
24
|
+
var fontSize = form === "basicSelImg" || form === "listenSelImg" ? "xl" : "xxxl";
|
|
25
|
+
if (isListenForm && mode === "quiz")
|
|
26
|
+
return (<react_native_1.View style={styles.container}>
|
|
27
|
+
<RepeatBtn_1.default />
|
|
28
|
+
</react_native_1.View>);
|
|
29
|
+
return (<react_native_1.View style={styles.container}>
|
|
30
|
+
<RubyText_1.default fsize={fontSize}>{quizText}</RubyText_1.default>
|
|
31
|
+
</react_native_1.View>);
|
|
32
|
+
};
|
|
33
|
+
var styles = react_native_1.StyleSheet.create({
|
|
34
|
+
container: {
|
|
35
|
+
height: 100,
|
|
36
|
+
justifyContent: "center",
|
|
37
|
+
},
|
|
38
|
+
text: {
|
|
39
|
+
fontSize: 16,
|
|
40
|
+
color: "#333",
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
exports.default = JQuestionText;
|
|
@@ -0,0 +1,44 @@
|
|
|
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_redux_1 = require("react-redux");
|
|
7
|
+
var common_1 = require("@nakamura-123/common");
|
|
8
|
+
var lib_1 = require("@nakamura-123/lib");
|
|
9
|
+
var react_1 = __importDefault(require("react"));
|
|
10
|
+
var react_native_1 = require("react-native");
|
|
11
|
+
var QuizCnt = function () {
|
|
12
|
+
var turn = (0, react_redux_1.useSelector)(function (state) { return state.quiz.currentInfo.state.turn; }) + 1;
|
|
13
|
+
var quizLength = (0, react_redux_1.useSelector)(function (state) { return state.quiz.quizList.length; });
|
|
14
|
+
return (<react_native_1.View style={styles.circle}>
|
|
15
|
+
<common_1.MyText style={styles.mainText}>
|
|
16
|
+
{turn}
|
|
17
|
+
<common_1.MyText style={styles.subText}>/{quizLength}</common_1.MyText>
|
|
18
|
+
</common_1.MyText>
|
|
19
|
+
</react_native_1.View>);
|
|
20
|
+
};
|
|
21
|
+
var styles = react_native_1.StyleSheet.create({
|
|
22
|
+
circle: {
|
|
23
|
+
// marginVertical: 10,
|
|
24
|
+
marginTop: 3,
|
|
25
|
+
marginBottom: 5,
|
|
26
|
+
borderWidth: 1,
|
|
27
|
+
borderColor: lib_1.colors.ltBlack,
|
|
28
|
+
borderRadius: 50,
|
|
29
|
+
width: 50,
|
|
30
|
+
height: 50,
|
|
31
|
+
justifyContent: "center",
|
|
32
|
+
alignItems: "center",
|
|
33
|
+
},
|
|
34
|
+
mainText: {
|
|
35
|
+
fontSize: 16,
|
|
36
|
+
color: "#333",
|
|
37
|
+
fontWeight: "bold",
|
|
38
|
+
},
|
|
39
|
+
subText: {
|
|
40
|
+
fontSize: 10,
|
|
41
|
+
color: lib_1.colors.ltBlack,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
exports.default = QuizCnt;
|
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
var lib_1 = require("@nakamura-123/lib");
|
|
27
|
+
var react_1 = __importStar(require("react"));
|
|
28
|
+
var react_native_1 = require("react-native");
|
|
29
|
+
var quizHook_1 = require("../../hooks/quizHook");
|
|
30
|
+
var native_1 = require("@react-navigation/native");
|
|
31
|
+
var react_redux_1 = require("react-redux");
|
|
32
|
+
var stores_1 = require("@nakamura-123/stores");
|
|
33
|
+
var react_redux_2 = require("react-redux");
|
|
34
|
+
var TimeLimit = function (_a) {
|
|
35
|
+
var _b = _a.timeLimit, timeLimit = _b === void 0 ? 10000 : _b;
|
|
36
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
|
37
|
+
var animationRef = (0, react_1.useRef)(null);
|
|
38
|
+
var finishedVoice = (0, react_redux_2.useSelector)(function (state) { return state.quiz.currentInfo.jlpt.isFinishVoice; });
|
|
39
|
+
if (!timeLimit)
|
|
40
|
+
timeLimit = 10000;
|
|
41
|
+
var progressAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(1)).current;
|
|
42
|
+
var mode = (0, quizHook_1.useGetMode)();
|
|
43
|
+
var isFocused = (0, native_1.useIsFocused)();
|
|
44
|
+
(0, react_1.useEffect)(function () {
|
|
45
|
+
var _a;
|
|
46
|
+
if (!timeLimit || mode !== "quiz" || !isFocused)
|
|
47
|
+
return;
|
|
48
|
+
(_a = animationRef.current) === null || _a === void 0 ? void 0 : _a.stop(); // 前のアニメーション停止
|
|
49
|
+
progressAnim.stopAnimation(function (currentValue) {
|
|
50
|
+
var remaining = currentValue * timeLimit;
|
|
51
|
+
animationRef.current = react_native_1.Animated.timing(progressAnim, {
|
|
52
|
+
toValue: 0,
|
|
53
|
+
duration: remaining,
|
|
54
|
+
useNativeDriver: false,
|
|
55
|
+
});
|
|
56
|
+
if (finishedVoice)
|
|
57
|
+
animationRef.current.start();
|
|
58
|
+
var listenerId = progressAnim.addListener(function (_a) {
|
|
59
|
+
var value = _a.value;
|
|
60
|
+
if (value <= 0) {
|
|
61
|
+
dispatch(stores_1.quizAction.changeMode("check"));
|
|
62
|
+
progressAnim.removeListener(listenerId);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
return function () {
|
|
67
|
+
var _a;
|
|
68
|
+
(_a = animationRef.current) === null || _a === void 0 ? void 0 : _a.stop();
|
|
69
|
+
};
|
|
70
|
+
}, [timeLimit, mode, isFocused, finishedVoice]);
|
|
71
|
+
var widthInterpolate = progressAnim.interpolate({
|
|
72
|
+
inputRange: [0, 1],
|
|
73
|
+
outputRange: ["0%", "100%"],
|
|
74
|
+
});
|
|
75
|
+
return (<react_native_1.View style={styles.backgroundBar}>
|
|
76
|
+
<react_native_1.Animated.View style={[styles.progressBar, { width: widthInterpolate }]}/>
|
|
77
|
+
</react_native_1.View>);
|
|
78
|
+
};
|
|
79
|
+
var styles = react_native_1.StyleSheet.create({
|
|
80
|
+
backgroundBar: {
|
|
81
|
+
width: "90%",
|
|
82
|
+
height: 20,
|
|
83
|
+
backgroundColor: lib_1.colors.bkBeige,
|
|
84
|
+
borderRadius: 10,
|
|
85
|
+
borderWidth: 1,
|
|
86
|
+
borderColor: lib_1.colors.ltBlack,
|
|
87
|
+
padding: 2,
|
|
88
|
+
overflow: "hidden",
|
|
89
|
+
position: "relative",
|
|
90
|
+
},
|
|
91
|
+
progressBar: {
|
|
92
|
+
height: "100%",
|
|
93
|
+
backgroundColor: lib_1.colors.ltBlack,
|
|
94
|
+
borderRadius: 10,
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
exports.default = TimeLimit;
|
|
@@ -16,7 +16,9 @@ var QuestionFormats_1 = require("./QuestionFormats");
|
|
|
16
16
|
var quizHook_2 = require("../../hooks/quizHook");
|
|
17
17
|
var Question = function (_a) {
|
|
18
18
|
var navigation = _a.navigation;
|
|
19
|
-
var question = (0, quizHook_1.
|
|
19
|
+
var question = (0, quizHook_1.useQuestionDataD)();
|
|
20
|
+
if (!question)
|
|
21
|
+
return null;
|
|
20
22
|
// クイズの問題文を取得
|
|
21
23
|
var yearId = question.yearId, style = question.style, title = question.title, form = question.form;
|
|
22
24
|
var multiState = (0, react_redux_1.useSelector)(function (state) { return state.quiz.currentInfo.multi; });
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { StackNavigationProp } from "@react-navigation/stack";
|
|
3
|
+
import { Nav } from "@nakamura-123/types";
|
|
4
|
+
interface NextQuizProps {
|
|
5
|
+
navigation: StackNavigationProp<Nav.RootStackParamList>;
|
|
6
|
+
}
|
|
7
|
+
declare const Bottom3BtnJ: React.FC<NextQuizProps>;
|
|
8
|
+
export default Bottom3BtnJ;
|
|
@@ -0,0 +1,78 @@
|
|
|
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_redux_1 = require("react-redux");
|
|
9
|
+
var lib_1 = require("@nakamura-123/lib");
|
|
10
|
+
var common_1 = require("@nakamura-123/common");
|
|
11
|
+
var stores_1 = require("@nakamura-123/stores");
|
|
12
|
+
var quizHook_1 = require("../../hooks/quizHook");
|
|
13
|
+
var quizActionHook_1 = require("../../hooks/quizActionHook");
|
|
14
|
+
var Bottom3BtnJ = function (_a) {
|
|
15
|
+
var navigation = _a.navigation;
|
|
16
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
|
17
|
+
var mode = (0, quizHook_1.useGetMode)();
|
|
18
|
+
var nextQuizAction = (0, quizActionHook_1.useNextQuizAction)();
|
|
19
|
+
var _b = (0, react_redux_1.useSelector)(function (state) { return state.quiz.currentInfo.state; }), turn = _b.turn, activeTurn = _b.activeTurn;
|
|
20
|
+
var isActiveTurn = turn === activeTurn;
|
|
21
|
+
var btnList = [
|
|
22
|
+
// 1つ目
|
|
23
|
+
createBtnInfo("arrow-left", "Back", function () {
|
|
24
|
+
return dispatch(stores_1.quizAction.beforeTurn());
|
|
25
|
+
}),
|
|
26
|
+
// 2つ目
|
|
27
|
+
createBtnInfo("envelope", "Mail", function () { return navigation.navigate("Report"); }),
|
|
28
|
+
// 3つ目 quizなら「パス」、checkなら「次へ」
|
|
29
|
+
mode === "quiz"
|
|
30
|
+
? createBtnInfo("arrow-right", "Skip", function () {
|
|
31
|
+
return dispatch(stores_1.quizAction.changeMode("check"));
|
|
32
|
+
})
|
|
33
|
+
: createBtnInfo("arrow-right", "Next", function () {
|
|
34
|
+
if (mode === "result" || !isActiveTurn)
|
|
35
|
+
dispatch(stores_1.quizAction.nextTurn());
|
|
36
|
+
else
|
|
37
|
+
nextQuizAction(navigation);
|
|
38
|
+
}),
|
|
39
|
+
];
|
|
40
|
+
return (<react_native_1.View style={styles.container}>
|
|
41
|
+
{btnList.map(function (btn) { return (<react_native_1.Pressable key={btn.text} onPress={btn.onPress} style={styles.button}>
|
|
42
|
+
<react_native_1.View style={styles.iconContainer}>
|
|
43
|
+
<common_1.Icon5 name={btn.icon} size={15}/>
|
|
44
|
+
</react_native_1.View>
|
|
45
|
+
<common_1.MyText style={styles.text} fsize="sm">
|
|
46
|
+
{btn.text}
|
|
47
|
+
</common_1.MyText>
|
|
48
|
+
</react_native_1.Pressable>); })}
|
|
49
|
+
</react_native_1.View>);
|
|
50
|
+
};
|
|
51
|
+
var createBtnInfo = function (icon, text, onPress) { return ({
|
|
52
|
+
icon: icon,
|
|
53
|
+
text: text,
|
|
54
|
+
onPress: onPress,
|
|
55
|
+
}); };
|
|
56
|
+
var styles = react_native_1.StyleSheet.create({
|
|
57
|
+
container: {
|
|
58
|
+
flexDirection: "row",
|
|
59
|
+
justifyContent: "center",
|
|
60
|
+
alignItems: "center",
|
|
61
|
+
marginTop: 10,
|
|
62
|
+
},
|
|
63
|
+
button: {
|
|
64
|
+
justifyContent: "center",
|
|
65
|
+
alignItems: "center",
|
|
66
|
+
borderRadius: 50, // 丸い形にする
|
|
67
|
+
height: 50,
|
|
68
|
+
width: 50,
|
|
69
|
+
backgroundColor: lib_1.colors.ltBeige,
|
|
70
|
+
marginHorizontal: 10,
|
|
71
|
+
},
|
|
72
|
+
iconContainer: {},
|
|
73
|
+
text: {
|
|
74
|
+
marginTop: 1,
|
|
75
|
+
color: lib_1.colors.text,
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
exports.default = Bottom3BtnJ;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { StackNavigationProp } from "@react-navigation/stack";
|
|
3
|
+
import { Nav } from "@nakamura-123/types";
|
|
4
|
+
interface NextQuizProps {
|
|
5
|
+
navigation: StackNavigationProp<Nav.RootStackParamList>;
|
|
6
|
+
}
|
|
7
|
+
declare const Bottom3BtnJ: React.FC<NextQuizProps>;
|
|
8
|
+
export default Bottom3BtnJ;
|
|
@@ -0,0 +1,56 @@
|
|
|
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_redux_1 = require("react-redux");
|
|
9
|
+
var common_1 = require("@nakamura-123/common");
|
|
10
|
+
var stores_1 = require("@nakamura-123/stores");
|
|
11
|
+
var quizHook_1 = require("../../hooks/quizHook");
|
|
12
|
+
var quizActionHook_1 = require("../../hooks/quizActionHook");
|
|
13
|
+
var Bottom3BtnJ = function (_a) {
|
|
14
|
+
var navigation = _a.navigation;
|
|
15
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
|
16
|
+
var mode = (0, quizHook_1.useGetMode)();
|
|
17
|
+
var nextQuizAction = (0, quizActionHook_1.useNextQuizAction)();
|
|
18
|
+
var _b = (0, react_redux_1.useSelector)(function (state) { return state.quiz.currentInfo.state; }), turn = _b.turn, activeTurn = _b.activeTurn;
|
|
19
|
+
var isActiveTurn = turn === activeTurn;
|
|
20
|
+
var btnList = [
|
|
21
|
+
// 1つ目
|
|
22
|
+
createBtnInfo("arrow-left", "Back", function () {
|
|
23
|
+
return dispatch(stores_1.quizAction.beforeTurn());
|
|
24
|
+
}),
|
|
25
|
+
// 2つ目
|
|
26
|
+
createBtnInfo("envelope", "Mail", function () { return navigation.navigate("Report"); }),
|
|
27
|
+
// 3つ目 quizなら「パス」、checkなら「次へ」
|
|
28
|
+
mode === "quiz"
|
|
29
|
+
? createBtnInfo("arrow-right", "Skip", function () {
|
|
30
|
+
return dispatch(stores_1.quizAction.changeMode("check"));
|
|
31
|
+
})
|
|
32
|
+
: createBtnInfo("arrow-right", "Next", function () {
|
|
33
|
+
if (mode === "result" || !isActiveTurn)
|
|
34
|
+
dispatch(stores_1.quizAction.nextTurn());
|
|
35
|
+
else
|
|
36
|
+
nextQuizAction(navigation);
|
|
37
|
+
}),
|
|
38
|
+
];
|
|
39
|
+
return (<react_native_1.View style={styles.container}>
|
|
40
|
+
{btnList.map(function (btn) { return (<common_1.IconTextBtn btn={btn} key={btn.text}/>); })}
|
|
41
|
+
</react_native_1.View>);
|
|
42
|
+
};
|
|
43
|
+
var createBtnInfo = function (icon, text, onPress) { return ({
|
|
44
|
+
icon: icon,
|
|
45
|
+
text: text,
|
|
46
|
+
onPress: onPress,
|
|
47
|
+
}); };
|
|
48
|
+
var styles = react_native_1.StyleSheet.create({
|
|
49
|
+
container: {
|
|
50
|
+
flexDirection: "row",
|
|
51
|
+
justifyContent: "center",
|
|
52
|
+
alignItems: "center",
|
|
53
|
+
marginTop: 10,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
exports.default = Bottom3BtnJ;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { StackNavigationProp } from "@react-navigation/stack";
|
|
3
|
+
import { Nav } from "@nakamura-123/types";
|
|
4
|
+
interface NextQuizProps {
|
|
5
|
+
navigation: StackNavigationProp<Nav.RootStackParamList>;
|
|
6
|
+
}
|
|
7
|
+
declare const Bottom2BtnJ: React.FC<NextQuizProps>;
|
|
8
|
+
export default Bottom2BtnJ;
|
|
@@ -0,0 +1,86 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
var react_1 = __importStar(require("react"));
|
|
27
|
+
var react_native_1 = require("react-native");
|
|
28
|
+
var react_redux_1 = require("react-redux");
|
|
29
|
+
var lib_1 = require("@nakamura-123/lib");
|
|
30
|
+
var common_1 = require("@nakamura-123/common");
|
|
31
|
+
var quizHook_1 = require("../../hooks/quizHook");
|
|
32
|
+
var Bottom2BtnJ = function (_a) {
|
|
33
|
+
var navigation = _a.navigation;
|
|
34
|
+
var dispatch = (0, react_redux_1.useDispatch)();
|
|
35
|
+
var question = (0, quizHook_1.useQuestionDataJ)();
|
|
36
|
+
var quizId = (question === null || question === void 0 ? void 0 : question.quizId) || null;
|
|
37
|
+
if (quizId === null)
|
|
38
|
+
return null; // quizIdがnullの場合は何も表示しない
|
|
39
|
+
// 音声の設定
|
|
40
|
+
var voice = (0, quizHook_1.useGetVoicePath)(quizId);
|
|
41
|
+
var finishedVoice = function () {
|
|
42
|
+
return dispatch({ type: "quiz/changeFinishVoice", payload: true });
|
|
43
|
+
};
|
|
44
|
+
// 音声のプリロード・初回再生
|
|
45
|
+
(0, react_1.useEffect)(function () {
|
|
46
|
+
if (voice)
|
|
47
|
+
lib_1.voiceFnc.preloadVoiceById(voice, true, finishedVoice);
|
|
48
|
+
else
|
|
49
|
+
finishedVoice();
|
|
50
|
+
return function () {
|
|
51
|
+
if (voice)
|
|
52
|
+
lib_1.voiceFnc.unloadVoiceById(voice);
|
|
53
|
+
dispatch({ type: "quiz/changeFinishVoice", payload: false });
|
|
54
|
+
};
|
|
55
|
+
}, [quizId]);
|
|
56
|
+
var btnList = [
|
|
57
|
+
voice
|
|
58
|
+
? createBtnInfo("volume-up", "Repeat", function () { return lib_1.voiceFnc.playVoice(voice, 1); })
|
|
59
|
+
: null,
|
|
60
|
+
createBtnInfo("book", "Guide", function () {
|
|
61
|
+
return navigation.navigate("Guide", { quizId: quizId });
|
|
62
|
+
}),
|
|
63
|
+
].filter(Boolean); // falsyな要素を削除
|
|
64
|
+
return (<react_native_1.View style={styles.container}>
|
|
65
|
+
{btnList.map(function (btn) {
|
|
66
|
+
if (btn === null)
|
|
67
|
+
return null; // nullを除く
|
|
68
|
+
return (<common_1.IconTextBtn btn={btn} key={btn.text}/> // IconTextBtnを使用
|
|
69
|
+
);
|
|
70
|
+
})}
|
|
71
|
+
</react_native_1.View>);
|
|
72
|
+
};
|
|
73
|
+
var createBtnInfo = function (icon, text, onPress) { return ({
|
|
74
|
+
icon: icon,
|
|
75
|
+
text: text,
|
|
76
|
+
onPress: onPress,
|
|
77
|
+
}); };
|
|
78
|
+
var styles = react_native_1.StyleSheet.create({
|
|
79
|
+
container: {
|
|
80
|
+
flexDirection: "row",
|
|
81
|
+
justifyContent: "space-between",
|
|
82
|
+
marginBottom: 10,
|
|
83
|
+
marginHorizontal: 10,
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
exports.default = Bottom2BtnJ;
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
var react_1 = __importDefault(require("react"));
|
|
7
7
|
var react_native_1 = require("react-native");
|
|
8
8
|
var react_redux_1 = require("react-redux");
|
|
9
|
-
var lib_1 = require("@nakamura-123/lib");
|
|
10
9
|
var common_1 = require("@nakamura-123/common");
|
|
11
10
|
var stores_1 = require("@nakamura-123/stores");
|
|
12
11
|
var quizHook_1 = require("../../hooks/quizHook");
|
|
@@ -38,14 +37,7 @@ var NextQuiz = function (_a) {
|
|
|
38
37
|
}),
|
|
39
38
|
];
|
|
40
39
|
return (<react_native_1.View style={styles.container}>
|
|
41
|
-
{btnList.map(function (btn) { return (<
|
|
42
|
-
<react_native_1.View style={styles.iconContainer}>
|
|
43
|
-
<common_1.Icon5 name={btn.icon} size={15}/>
|
|
44
|
-
</react_native_1.View>
|
|
45
|
-
<common_1.MyText style={styles.text} fsize="sm">
|
|
46
|
-
{btn.text}
|
|
47
|
-
</common_1.MyText>
|
|
48
|
-
</react_native_1.Pressable>); })}
|
|
40
|
+
{btnList.map(function (btn) { return (<common_1.IconTextBtn btn={btn} key={btn.text}/>); })}
|
|
49
41
|
</react_native_1.View>);
|
|
50
42
|
};
|
|
51
43
|
var createBtnInfo = function (icon, text, onPress) { return ({
|
|
@@ -60,19 +52,5 @@ var styles = react_native_1.StyleSheet.create({
|
|
|
60
52
|
alignItems: "center",
|
|
61
53
|
marginTop: 20,
|
|
62
54
|
},
|
|
63
|
-
button: {
|
|
64
|
-
justifyContent: "center",
|
|
65
|
-
alignItems: "center",
|
|
66
|
-
borderRadius: 50, // 丸い形にする
|
|
67
|
-
height: 50,
|
|
68
|
-
width: 50,
|
|
69
|
-
backgroundColor: lib_1.colors.ltBeige,
|
|
70
|
-
marginHorizontal: 10,
|
|
71
|
-
},
|
|
72
|
-
iconContainer: {},
|
|
73
|
-
text: {
|
|
74
|
-
marginTop: 1,
|
|
75
|
-
color: lib_1.colors.text,
|
|
76
|
-
},
|
|
77
55
|
});
|
|
78
56
|
exports.default = NextQuiz;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { StackNavigationProp } from "@react-navigation/stack";
|
|
3
|
+
import { Nav } from "@nakamura-123/types";
|
|
4
|
+
interface NextQuizProps {
|
|
5
|
+
navigation: StackNavigationProp<Nav.RootStackParamList>;
|
|
6
|
+
}
|
|
7
|
+
declare const Bottom3BtnJ: React.FC<NextQuizProps>;
|
|
8
|
+
export default Bottom3BtnJ;
|