@nakamura-123/pages 0.1.31 → 0.1.34
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 +2 -0
- package/dist/component/Basic/BasicProgressBar.d.ts +8 -0
- package/dist/component/Basic/BasicProgressBar.js +50 -0
- package/dist/component/Coin/CoinCheck.d.ts +1 -1
- package/dist/component/Coin/CoinCheck.js +21 -19
- package/dist/component/Coin/CoinFnc.d.ts +1 -1
- package/dist/component/Coin/CoinFnc.js +2 -2
- package/dist/component/Grade/ShareBtn.js +2 -2
- package/dist/component/Grade/UnitCircles copy.d.ts +7 -0
- package/dist/component/Grade/UnitCircles copy.js +58 -0
- package/dist/component/Grade/UnitCircles.d.ts +7 -0
- package/dist/component/Grade/UnitCircles.js +58 -0
- package/dist/component/Grade/YearCircles.d.ts +7 -0
- package/dist/component/Grade/YearCircles.js +57 -0
- package/dist/component/OnlineInput/PasswardModal.js +38 -7
- package/dist/component/OnlineInput/PasswordIdModal.js +2 -2
- package/dist/component/Result/ScoreCircle.js +6 -4
- package/dist/component/TagBadge5s.d.ts +2 -2
- package/dist/functions/createQuizFncD.d.ts +11 -4
- package/dist/functions/gradeFnc.d.ts +1 -1
- package/dist/functions/gradeFnc.js +3 -3
- package/dist/functions/oldStorageFnc.js +17 -15
- package/dist/functions/questionFilterD.d.ts +5 -4
- package/dist/functions/questionFilterJ.d.ts +5 -4
- package/dist/functions/tagFncD.d.ts +1 -1
- package/dist/functions/tagFncD.js +8 -8
- package/dist/functions/tagFncJ.d.ts +1 -1
- package/dist/functions/tagFncJ.js +3 -3
- package/dist/functions/testFnc.js +4 -3
- package/dist/page/CoinPage.js +2 -2
- package/dist/page/GetBadgePage.js +2 -2
- package/dist/page/GradePage.js +9 -2
- package/dist/page/HomePage.js +3 -3
- package/dist/page/ReportPage.js +2 -2
- package/dist/quiz/Title.js +22 -10
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -40,6 +40,7 @@ var BasicSetting_1 = __importDefault(require("./BasicSetting"));
|
|
|
40
40
|
var Guide_1 = __importDefault(require("../Guide"));
|
|
41
41
|
var SelectedExamCnt_1 = __importDefault(require("./SelectedExamCnt"));
|
|
42
42
|
var react_i18next_1 = require("react-i18next");
|
|
43
|
+
var BasicProgressBar_1 = __importDefault(require("./BasicProgressBar"));
|
|
43
44
|
var BasicPage = function (_a) {
|
|
44
45
|
var navigation = _a.navigation, subject = _a.subject, index = _a.index;
|
|
45
46
|
var dispatch = (0, react_redux_1.useDispatch)();
|
|
@@ -102,6 +103,7 @@ var BasicPage = function (_a) {
|
|
|
102
103
|
<react_native_1.View style={styles.navBar}/>
|
|
103
104
|
</Guide_1.default>
|
|
104
105
|
<common_1.RoundRectangle title={categoryName} style={styles.categoryName}/>
|
|
106
|
+
<BasicProgressBar_1.default subject={subject} index={index}/>
|
|
105
107
|
<SelectedExamCnt_1.default type={subject.type}/>
|
|
106
108
|
<common_1.HelpMark name="basicList" marginTop={20} top={-23}/>
|
|
107
109
|
<SubCategoryList_1.default navigation={navigation} topSubject={subject} index={index}/>
|
|
@@ -0,0 +1,50 @@
|
|
|
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 common_1 = require("@nakamura-123/common");
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var react_native_1 = require("react-native");
|
|
9
|
+
var react_redux_1 = require("react-redux");
|
|
10
|
+
var basicHook_1 = require("../../hooks/basicHook");
|
|
11
|
+
var tagFncJ_1 = require("../../functions/tagFncJ");
|
|
12
|
+
var tagFncD_1 = require("../../functions/tagFncD");
|
|
13
|
+
var BasicProgressBar = function (_a) {
|
|
14
|
+
var subject = _a.subject, index = _a.index;
|
|
15
|
+
var selectKey = (0, react_redux_1.useSelector)(function (state) { return state.app[subject.list][index].key; });
|
|
16
|
+
var outOfYearRangeStore = (0, react_redux_1.useSelector)(function (state) { return state.quizCfg.startCfg.outOfYearRange; });
|
|
17
|
+
var outOfYearRange = subject.type === "unit" ? outOfYearRangeStore : undefined;
|
|
18
|
+
// Realm データベースクエリ
|
|
19
|
+
var QuestionDBInfo = (0, basicHook_1.useGetQuestionQuery)();
|
|
20
|
+
var getCategoryTags = QuestionDBInfo.system === "JLPT"
|
|
21
|
+
? (0, tagFncJ_1.getCategoryTagLevelCntsJ)(QuestionDBInfo.query, selectKey, subject.tag)
|
|
22
|
+
: (0, tagFncD_1.getCategoryTagLevelCntsD)(QuestionDBInfo.query, selectKey, subject.type, outOfYearRange);
|
|
23
|
+
var rate = Math.round((0, tagFncD_1.getCategoryRate)(getCategoryTags));
|
|
24
|
+
var progressColor = rate > 85 ? "red" : rate > 70 ? "green" : rate > 50 ? "yellow" : "blue";
|
|
25
|
+
return (<react_native_1.View style={styles.container}>
|
|
26
|
+
<react_native_1.View style={styles.progressBox}>
|
|
27
|
+
<common_1.ProgressBar progress={rate} barColor={progressColor} height={20}/>
|
|
28
|
+
</react_native_1.View>
|
|
29
|
+
<react_native_1.View style={styles.textBox}>
|
|
30
|
+
<common_1.MyText>{rate}%</common_1.MyText>
|
|
31
|
+
</react_native_1.View>
|
|
32
|
+
</react_native_1.View>);
|
|
33
|
+
};
|
|
34
|
+
var styles = react_native_1.StyleSheet.create({
|
|
35
|
+
container: {
|
|
36
|
+
// marginTop: 10,
|
|
37
|
+
// marginBottom: 5,
|
|
38
|
+
flexDirection: "row",
|
|
39
|
+
},
|
|
40
|
+
progressBox: {
|
|
41
|
+
flex: 1,
|
|
42
|
+
},
|
|
43
|
+
textBox: {
|
|
44
|
+
width: 50,
|
|
45
|
+
height: 20,
|
|
46
|
+
justifyContent: "flex-start",
|
|
47
|
+
alignItems: "center",
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
exports.default = BasicProgressBar;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Storage } from "@nakamura-123/types";
|
|
2
2
|
export declare const coinCheckFnc: import("@reduxjs/toolkit").AsyncThunk<void, string, {
|
|
3
3
|
state?: unknown;
|
|
4
|
-
dispatch?: import("redux").Dispatch;
|
|
4
|
+
dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
|
|
5
5
|
extra?: unknown;
|
|
6
6
|
rejectValue?: unknown;
|
|
7
7
|
serializedErrorType?: unknown;
|
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
13
|
-
return g
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -42,24 +42,26 @@ var toolkit_1 = require("@reduxjs/toolkit");
|
|
|
42
42
|
var CoinFnc_1 = require("./CoinFnc");
|
|
43
43
|
var stores_1 = require("@nakamura-123/stores");
|
|
44
44
|
// 00.メイン関数
|
|
45
|
-
exports.coinCheckFnc = (0, toolkit_1.createAsyncThunk)("coin/check", function (
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
45
|
+
exports.coinCheckFnc = (0, toolkit_1.createAsyncThunk)("coin/check", function (allFreeId, _a) {
|
|
46
|
+
var dispatch = _a.dispatch;
|
|
47
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
48
|
+
var receipts, isExistedId;
|
|
49
|
+
return __generator(this, function (_b) {
|
|
50
|
+
switch (_b.label) {
|
|
51
|
+
case 0: return [4 /*yield*/, (0, CoinFnc_1.restorePurchases)(dispatch, false)];
|
|
52
|
+
case 1:
|
|
53
|
+
receipts = _b.sent();
|
|
54
|
+
isExistedId = hasPurchasedItems(receipts, allFreeId);
|
|
55
|
+
if (!isExistedId) {
|
|
56
|
+
// 返金などをされていて、flaseの場合、このIDのアイテムを削除し、store更新
|
|
57
|
+
stores_1.coinStorage.removePurchasedItem(allFreeId);
|
|
58
|
+
dispatch({ type: "setting/updateAllFreeState", payload: "none" });
|
|
59
|
+
}
|
|
60
|
+
return [2 /*return*/];
|
|
61
|
+
}
|
|
62
|
+
});
|
|
61
63
|
});
|
|
62
|
-
});
|
|
64
|
+
});
|
|
63
65
|
// 91. 復元を行い、チェックが必要か判定
|
|
64
66
|
var isCheckRequired = function (allFreeState, lastCheckedDate, isCompoleteFree) {
|
|
65
67
|
if (isCompoleteFree)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import RNIap, { ProductPurchase } from "react-native-iap";
|
|
1
|
+
import RNIap, { Product, ProductPurchase } from "react-native-iap";
|
|
2
2
|
import { Storage } from "@nakamura-123/types";
|
|
3
3
|
export declare const initializeIAP: (paymentItems: string[] | undefined, setProducts: (products: RNIap.Product[]) => void, setLoading: (loading: boolean) => void) => Promise<void>;
|
|
4
4
|
export declare const handlePurchase: (productId: string, dispatch: (action: any) => void) => Promise<ProductPurchase | null>;
|
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
13
|
-
return g
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
13
|
-
return g
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -0,0 +1,58 @@
|
|
|
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 tagFncJ_1 = require("../../functions/tagFncJ");
|
|
10
|
+
var tagFncD_1 = require("../../functions/tagFncD");
|
|
11
|
+
var SubCategoryLeft_1 = __importDefault(require("../Basic/SubCategoryLeft"));
|
|
12
|
+
var lib_1 = require("@nakamura-123/lib");
|
|
13
|
+
var common_1 = require("@nakamura-123/common");
|
|
14
|
+
var UnitCircles = function (_a) {
|
|
15
|
+
var QuestionDBInfo = _a.QuestionDBInfo;
|
|
16
|
+
var unitList = (0, react_redux_1.useSelector)(function (state) { return state.app.unitList; });
|
|
17
|
+
var outOfYearRange = (0, react_redux_1.useSelector)(function (state) { return state.quizCfg.startCfg.outOfYearRange; });
|
|
18
|
+
var circleInfos = unitList.map(function (_a) {
|
|
19
|
+
var key = _a.key, title = _a.title;
|
|
20
|
+
var tags = QuestionDBInfo.system === "JLPT"
|
|
21
|
+
? (0, tagFncJ_1.getCategoryTagLevelCntsJ)(QuestionDBInfo.query, key, "basicTag")
|
|
22
|
+
: (0, tagFncD_1.getCategoryTagLevelCntsD)(QuestionDBInfo.query, key, "unit", outOfYearRange);
|
|
23
|
+
var rate = Math.round((0, tagFncD_1.getCategoryRate)(tags));
|
|
24
|
+
return { title: title, rate: rate };
|
|
25
|
+
});
|
|
26
|
+
return (<react_native_1.View style={styles.container}>
|
|
27
|
+
{circleInfos.map(function (_a) {
|
|
28
|
+
var title = _a.title, rate = _a.rate;
|
|
29
|
+
return (<react_native_1.View key={title} style={styles.itemBox}>
|
|
30
|
+
<SubCategoryLeft_1.default rate={rate} isLocked={false}/>
|
|
31
|
+
<common_1.MyText style={{ fontSize: 11 }}>{title}</common_1.MyText>
|
|
32
|
+
</react_native_1.View>);
|
|
33
|
+
})}
|
|
34
|
+
</react_native_1.View>);
|
|
35
|
+
};
|
|
36
|
+
var styles = react_native_1.StyleSheet.create({
|
|
37
|
+
container: {
|
|
38
|
+
flex: 1,
|
|
39
|
+
flexDirection: "row",
|
|
40
|
+
flexWrap: "wrap",
|
|
41
|
+
justifyContent: "center",
|
|
42
|
+
alignItems: "center",
|
|
43
|
+
backgroundColor: lib_1.colors.bkBeige,
|
|
44
|
+
borderWidth: 1,
|
|
45
|
+
borderColor: lib_1.colors.ltBlack,
|
|
46
|
+
borderRadius: 20,
|
|
47
|
+
paddingTop: 10,
|
|
48
|
+
marginTop: 10,
|
|
49
|
+
},
|
|
50
|
+
itemBox: {
|
|
51
|
+
width: 80,
|
|
52
|
+
height: 80,
|
|
53
|
+
justifyContent: "flex-start",
|
|
54
|
+
alignItems: "center",
|
|
55
|
+
// margin: 5,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
exports.default = UnitCircles;
|
|
@@ -0,0 +1,58 @@
|
|
|
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 tagFncJ_1 = require("../../functions/tagFncJ");
|
|
10
|
+
var tagFncD_1 = require("../../functions/tagFncD");
|
|
11
|
+
var SubCategoryLeft_1 = __importDefault(require("../Basic/SubCategoryLeft"));
|
|
12
|
+
var lib_1 = require("@nakamura-123/lib");
|
|
13
|
+
var common_1 = require("@nakamura-123/common");
|
|
14
|
+
var UnitCircles = function (_a) {
|
|
15
|
+
var QuestionDBInfo = _a.QuestionDBInfo;
|
|
16
|
+
var unitList = (0, react_redux_1.useSelector)(function (state) { return state.app.unitList; });
|
|
17
|
+
var outOfYearRange = (0, react_redux_1.useSelector)(function (state) { return state.quizCfg.startCfg.outOfYearRange; });
|
|
18
|
+
var circleInfos = unitList.map(function (_a) {
|
|
19
|
+
var key = _a.key, title = _a.title;
|
|
20
|
+
var tags = QuestionDBInfo.system === "JLPT"
|
|
21
|
+
? (0, tagFncJ_1.getCategoryTagLevelCntsJ)(QuestionDBInfo.query, key, "basicTag")
|
|
22
|
+
: (0, tagFncD_1.getCategoryTagLevelCntsD)(QuestionDBInfo.query, key, "unit", outOfYearRange);
|
|
23
|
+
var rate = Math.round((0, tagFncD_1.getCategoryRate)(tags));
|
|
24
|
+
return { title: title, rate: rate };
|
|
25
|
+
});
|
|
26
|
+
return (<react_native_1.View style={styles.container}>
|
|
27
|
+
{circleInfos.map(function (_a) {
|
|
28
|
+
var title = _a.title, rate = _a.rate;
|
|
29
|
+
return (<react_native_1.View key={title} style={styles.itemBox}>
|
|
30
|
+
<SubCategoryLeft_1.default rate={rate} isLocked={false}/>
|
|
31
|
+
<common_1.MyText style={{ fontSize: 11 }}>{title}</common_1.MyText>
|
|
32
|
+
</react_native_1.View>);
|
|
33
|
+
})}
|
|
34
|
+
</react_native_1.View>);
|
|
35
|
+
};
|
|
36
|
+
var styles = react_native_1.StyleSheet.create({
|
|
37
|
+
container: {
|
|
38
|
+
flex: 1,
|
|
39
|
+
flexDirection: "row",
|
|
40
|
+
flexWrap: "wrap",
|
|
41
|
+
justifyContent: "center",
|
|
42
|
+
alignItems: "center",
|
|
43
|
+
backgroundColor: lib_1.colors.bkBeige,
|
|
44
|
+
borderWidth: 1,
|
|
45
|
+
borderColor: lib_1.colors.ltBlack,
|
|
46
|
+
borderRadius: 20,
|
|
47
|
+
paddingTop: 10,
|
|
48
|
+
marginTop: 10,
|
|
49
|
+
},
|
|
50
|
+
itemBox: {
|
|
51
|
+
width: 80,
|
|
52
|
+
height: 80,
|
|
53
|
+
justifyContent: "flex-start",
|
|
54
|
+
alignItems: "center",
|
|
55
|
+
// margin: 5,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
exports.default = UnitCircles;
|
|
@@ -0,0 +1,57 @@
|
|
|
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 tagFncJ_1 = require("../../functions/tagFncJ");
|
|
10
|
+
var tagFncD_1 = require("../../functions/tagFncD");
|
|
11
|
+
var SubCategoryLeft_1 = __importDefault(require("../Basic/SubCategoryLeft"));
|
|
12
|
+
var lib_1 = require("@nakamura-123/lib");
|
|
13
|
+
var common_1 = require("@nakamura-123/common");
|
|
14
|
+
var YearCircles = function (_a) {
|
|
15
|
+
var QuestionDBInfo = _a.QuestionDBInfo;
|
|
16
|
+
var yearList = (0, react_redux_1.useSelector)(function (state) { return state.app.yearList; });
|
|
17
|
+
var circleInfos = yearList.map(function (_a) {
|
|
18
|
+
var key = _a.key, title = _a.title;
|
|
19
|
+
var tags = QuestionDBInfo.system === "JLPT"
|
|
20
|
+
? (0, tagFncJ_1.getCategoryTagLevelCntsJ)(QuestionDBInfo.query, key, "listenTag")
|
|
21
|
+
: (0, tagFncD_1.getCategoryTagLevelCntsD)(QuestionDBInfo.query, key, "year");
|
|
22
|
+
var rate = Math.round((0, tagFncD_1.getCategoryRate)(tags));
|
|
23
|
+
return { title: title, rate: rate };
|
|
24
|
+
});
|
|
25
|
+
return (<react_native_1.View style={styles.container}>
|
|
26
|
+
{circleInfos.map(function (_a) {
|
|
27
|
+
var title = _a.title, rate = _a.rate;
|
|
28
|
+
return (<react_native_1.View key={title} style={styles.itemBox}>
|
|
29
|
+
<SubCategoryLeft_1.default rate={rate} isLocked={false}/>
|
|
30
|
+
<common_1.MyText style={{ fontSize: 11 }}>{title}</common_1.MyText>
|
|
31
|
+
</react_native_1.View>);
|
|
32
|
+
})}
|
|
33
|
+
</react_native_1.View>);
|
|
34
|
+
};
|
|
35
|
+
var styles = react_native_1.StyleSheet.create({
|
|
36
|
+
container: {
|
|
37
|
+
flex: 1,
|
|
38
|
+
flexDirection: "row",
|
|
39
|
+
flexWrap: "wrap",
|
|
40
|
+
justifyContent: "center",
|
|
41
|
+
alignItems: "center",
|
|
42
|
+
backgroundColor: lib_1.colors.bkBeige,
|
|
43
|
+
borderWidth: 1,
|
|
44
|
+
borderColor: lib_1.colors.ltBlack,
|
|
45
|
+
borderRadius: 20,
|
|
46
|
+
paddingTop: 10,
|
|
47
|
+
marginTop: 10,
|
|
48
|
+
},
|
|
49
|
+
itemBox: {
|
|
50
|
+
width: 80,
|
|
51
|
+
height: 80,
|
|
52
|
+
justifyContent: "flex-start",
|
|
53
|
+
alignItems: "center",
|
|
54
|
+
// margin: 5,
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
exports.default = YearCircles;
|
|
@@ -32,8 +32,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
36
|
-
return g
|
|
35
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
36
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
37
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
38
|
function step(op) {
|
|
39
39
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -58,6 +58,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
58
58
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
62
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
63
|
+
if (ar || !(i in from)) {
|
|
64
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
65
|
+
ar[i] = from[i];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
69
|
+
};
|
|
61
70
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
71
|
var react_1 = __importStar(require("react"));
|
|
63
72
|
var react_native_1 = require("react-native");
|
|
@@ -75,23 +84,31 @@ var PasswordModal = function (_a) {
|
|
|
75
84
|
var saveUrl = (0, react_redux_1.useSelector)(function (state) { var _a; return (_a = state.app.appSetting.setting) === null || _a === void 0 ? void 0 : _a.api.inputSave; }) || "";
|
|
76
85
|
var appKey = (0, react_redux_1.useSelector)(function (state) { return state.app.appSetting.quizName.appKey; }) ||
|
|
77
86
|
"";
|
|
87
|
+
var datas = (0, react_redux_1.useSelector)(function (state) { return state.setting.input.onlineSave; });
|
|
78
88
|
var _b = (0, react_1.useState)(""), password = _b[0], setPassword = _b[1];
|
|
79
89
|
var _c = (0, react_1.useState)(false), loading = _c[0], setLoading = _c[1];
|
|
80
90
|
// セーブ時の動作
|
|
81
91
|
var handleSave = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
82
|
-
var isChecked, inputSaveData, sendData, res, date, error_1;
|
|
92
|
+
var isChecked, oldIds, inputSaveData, sendData, res, date, error_1;
|
|
83
93
|
return __generator(this, function (_a) {
|
|
84
94
|
switch (_a.label) {
|
|
85
95
|
case 0:
|
|
86
96
|
isChecked = (0, OnlineInputFnc_1.checkPassword)(password);
|
|
87
97
|
if (!isChecked)
|
|
88
98
|
return [2 /*return*/];
|
|
99
|
+
oldIds = getOldIds(datas);
|
|
89
100
|
setLoading(true);
|
|
101
|
+
console.log("oldIds", oldIds);
|
|
90
102
|
_a.label = 1;
|
|
91
103
|
case 1:
|
|
92
104
|
_a.trys.push([1, 3, 4, 5]);
|
|
93
105
|
inputSaveData = db_1.InputModel.getAllInput(realm);
|
|
94
|
-
sendData = {
|
|
106
|
+
sendData = {
|
|
107
|
+
appKey: appKey,
|
|
108
|
+
password: password,
|
|
109
|
+
saveData: inputSaveData,
|
|
110
|
+
deleteIds: oldIds,
|
|
111
|
+
};
|
|
95
112
|
return [4 /*yield*/, stores_1.inputApi.inputSaveApi(sendData, saveUrl)];
|
|
96
113
|
case 2:
|
|
97
114
|
res = _a.sent();
|
|
@@ -100,6 +117,11 @@ var PasswordModal = function (_a) {
|
|
|
100
117
|
type: "setting/addOnlineSave",
|
|
101
118
|
payload: { date: date, id: res.id },
|
|
102
119
|
});
|
|
120
|
+
// 古いデータを削除
|
|
121
|
+
dispatch({
|
|
122
|
+
type: "setting/deleteOnlineSave",
|
|
123
|
+
payload: res.deleteIds || [],
|
|
124
|
+
});
|
|
103
125
|
(0, OnlineInputFnc_1.correctAlart)();
|
|
104
126
|
dispatch(stores_1.settingStorage.saveSetting());
|
|
105
127
|
return [3 /*break*/, 5];
|
|
@@ -121,8 +143,12 @@ var PasswordModal = function (_a) {
|
|
|
121
143
|
return (<common_1.BaseModal isVisible={isVisible} onClose={onClose}>
|
|
122
144
|
<common_1.Spinner loading={loading}/>
|
|
123
145
|
<react_native_1.View style={styles.msgBox}>
|
|
124
|
-
<common_1.MyText
|
|
125
|
-
|
|
146
|
+
<common_1.MyText fsize="lg" style={{ alignSelf: "center", marginBottom: 10 }}>
|
|
147
|
+
パスワードを入力してください
|
|
148
|
+
</common_1.MyText>
|
|
149
|
+
<common_1.MyText>・4文字以上の半角英数</common_1.MyText>
|
|
150
|
+
<common_1.MyText>・保存期間は6ヶ月</common_1.MyText>
|
|
151
|
+
<common_1.MyText>・保存上限は3スロット。それ以上は古いデータから削除。</common_1.MyText>
|
|
126
152
|
</react_native_1.View>
|
|
127
153
|
<react_native_1.View style={styles.inputBox}>
|
|
128
154
|
<react_native_1.TextInput style={styles.input} placeholder="pass123" value={password} onChangeText={function (text) { return setPassword(text); }}/>
|
|
@@ -133,9 +159,14 @@ var PasswordModal = function (_a) {
|
|
|
133
159
|
</react_native_1.View>
|
|
134
160
|
</common_1.BaseModal>);
|
|
135
161
|
};
|
|
162
|
+
function getOldIds(dataList) {
|
|
163
|
+
return __spreadArray([], dataList, true).sort(function (a, b) { return new Date(b.date).getTime() - new Date(a.date).getTime(); })
|
|
164
|
+
.slice(2)
|
|
165
|
+
.map(function (item) { return item.id; });
|
|
166
|
+
}
|
|
136
167
|
var styles = react_native_1.StyleSheet.create({
|
|
137
168
|
msgBox: {
|
|
138
|
-
alignItems: "
|
|
169
|
+
alignItems: "flex-start",
|
|
139
170
|
},
|
|
140
171
|
inputBox: {
|
|
141
172
|
padding: 20,
|
|
@@ -32,8 +32,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
36
|
-
return g
|
|
35
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
36
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
37
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
38
|
function step(op) {
|
|
39
39
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -23,6 +23,9 @@ var ScoreCircle = function (_a) {
|
|
|
23
23
|
/{quizCnt}
|
|
24
24
|
</common_1.MyText>
|
|
25
25
|
</react_native_1.View>
|
|
26
|
+
<common_1.MyText fsize="sm" color="ltBlack">
|
|
27
|
+
({Math.round((score / quizCnt) * 100)}%)
|
|
28
|
+
</common_1.MyText>
|
|
26
29
|
</react_native_1.View>);
|
|
27
30
|
};
|
|
28
31
|
var styles = react_native_1.StyleSheet.create({
|
|
@@ -42,18 +45,17 @@ var styles = react_native_1.StyleSheet.create({
|
|
|
42
45
|
top: -15,
|
|
43
46
|
},
|
|
44
47
|
title: {
|
|
45
|
-
|
|
46
|
-
marginTop: 10,
|
|
48
|
+
marginTop: 20,
|
|
47
49
|
},
|
|
48
50
|
scoreBox: {
|
|
49
51
|
flexDirection: "row",
|
|
50
52
|
alignItems: "flex-end",
|
|
51
53
|
},
|
|
52
54
|
score: {
|
|
53
|
-
fontSize:
|
|
55
|
+
fontSize: 18,
|
|
54
56
|
},
|
|
55
57
|
cnt: {
|
|
56
|
-
fontSize:
|
|
58
|
+
fontSize: 13,
|
|
57
59
|
},
|
|
58
60
|
});
|
|
59
61
|
exports.default = ScoreCircle;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Db } from "@nakamura-123/types";
|
|
3
|
-
interface
|
|
3
|
+
interface Props {
|
|
4
4
|
subject: Db.SubjectInfo;
|
|
5
5
|
index: number;
|
|
6
6
|
}
|
|
7
|
-
declare const TagBadge5s: React.FC<
|
|
7
|
+
declare const TagBadge5s: React.FC<Props>;
|
|
8
8
|
export default TagBadge5s;
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QuizInitial } from "@nakamura-123/stores";
|
|
2
2
|
import { Store } from "@nakamura-123/types";
|
|
3
3
|
import { QRD } from "../types/filterType";
|
|
4
|
-
type startCfg = CfgInitial["startCfg"];
|
|
5
4
|
type Selected = QuizInitial["selected"];
|
|
6
|
-
export declare const getBasicQuizList: (QuestionDB: QRD, startCfg:
|
|
5
|
+
export declare const getBasicQuizList: (QuestionDB: QRD, startCfg: {
|
|
6
|
+
tags: import("@nakamura-123/types/dist/types/libType").LevelNames[];
|
|
7
|
+
option: import("@nakamura-123/lib/dist/config/startOption").StoreStartOptions;
|
|
8
|
+
outOfYearRange: number[];
|
|
9
|
+
}, selected: Selected) => Store.DQInStore[];
|
|
7
10
|
export declare const getMiniTestQuestions: (QuestionDB: QRD, subjectType: "unit" | "year", key: number, cnt: number, outOfYearRange: number[]) => Store.DQInStore[];
|
|
8
11
|
export declare const getTestQuestions: (QuestionDB: QRD, cnt: number) => Store.DQInStore[];
|
|
9
12
|
export declare const getTestQuestionsByUnit: (QuestionDB: QRD, cnt: number, unit: number[]) => Store.DQInStore[];
|
|
10
|
-
export declare const getBootQuestions: (QuestionDB: QRD, startCfg:
|
|
13
|
+
export declare const getBootQuestions: (QuestionDB: QRD, startCfg: {
|
|
14
|
+
tags: import("@nakamura-123/types/dist/types/libType").LevelNames[];
|
|
15
|
+
option: import("@nakamura-123/lib/dist/config/startOption").StoreStartOptions;
|
|
16
|
+
outOfYearRange: number[];
|
|
17
|
+
}, outOfUnitRange: number[], outOfYearRange: number[]) => Store.DQInStore[];
|
|
11
18
|
export {};
|
|
@@ -13,5 +13,5 @@ export declare const findMaxQuizCntLog: (DailyDB: RD) => DailyLogSchema | null;
|
|
|
13
13
|
export declare const getTotalQuizCnt: (DailyLogDB: RD) => number;
|
|
14
14
|
export declare const getConsecutiveStudyDays: (DailyLogDB: RD) => number;
|
|
15
15
|
export declare const getLongestConsecutiveStudyDays: (DailyLogDB: RD) => number;
|
|
16
|
-
export declare const promptStoreReview: (
|
|
16
|
+
export declare const promptStoreReview: () => Promise<void>;
|
|
17
17
|
export {};
|
|
@@ -32,8 +32,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
36
|
-
return g
|
|
35
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
36
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
37
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
38
|
function step(op) {
|
|
39
39
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -141,7 +141,7 @@ var getLongestConsecutiveStudyDays = function (DailyLogDB) {
|
|
|
141
141
|
return longestStreak;
|
|
142
142
|
};
|
|
143
143
|
exports.getLongestConsecutiveStudyDays = getLongestConsecutiveStudyDays;
|
|
144
|
-
var promptStoreReview = function (
|
|
144
|
+
var promptStoreReview = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
145
145
|
var isAvailable;
|
|
146
146
|
return __generator(this, function (_a) {
|
|
147
147
|
switch (_a.label) {
|
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
13
|
-
return g
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -194,21 +194,23 @@ var replaceOldInputData = function (realm) { return __awaiter(void 0, void 0, vo
|
|
|
194
194
|
});
|
|
195
195
|
}); };
|
|
196
196
|
// 60. inputIdの読み込み(reduxThunk)
|
|
197
|
-
var loadOldInputId = (0, toolkit_1.createAsyncThunk)("old/loadOldInputId", function (
|
|
198
|
-
var
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
197
|
+
var loadOldInputId = (0, toolkit_1.createAsyncThunk)("old/loadOldInputId", function (_, _a) {
|
|
198
|
+
var dispatch = _a.dispatch;
|
|
199
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
200
|
+
var id;
|
|
201
|
+
return __generator(this, function (_b) {
|
|
202
|
+
switch (_b.label) {
|
|
203
|
+
case 0: return [4 /*yield*/, loadOldData("id")];
|
|
204
|
+
case 1:
|
|
205
|
+
id = _b.sent();
|
|
206
|
+
if (!id)
|
|
207
|
+
return [2 /*return*/];
|
|
208
|
+
dispatch({ type: "setting/updateOldId", payload: id[0] });
|
|
206
209
|
return [2 /*return*/];
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
+
}
|
|
211
|
+
});
|
|
210
212
|
});
|
|
211
|
-
});
|
|
213
|
+
});
|
|
212
214
|
// 90. 旧データの存在をMarkデータから確認
|
|
213
215
|
var existOldData = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
214
216
|
var markData;
|