@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.
Files changed (37) hide show
  1. package/dist/component/Basic/BasicContents.js +2 -0
  2. package/dist/component/Basic/BasicProgressBar.d.ts +8 -0
  3. package/dist/component/Basic/BasicProgressBar.js +50 -0
  4. package/dist/component/Coin/CoinCheck.d.ts +1 -1
  5. package/dist/component/Coin/CoinCheck.js +21 -19
  6. package/dist/component/Coin/CoinFnc.d.ts +1 -1
  7. package/dist/component/Coin/CoinFnc.js +2 -2
  8. package/dist/component/Grade/ShareBtn.js +2 -2
  9. package/dist/component/Grade/UnitCircles copy.d.ts +7 -0
  10. package/dist/component/Grade/UnitCircles copy.js +58 -0
  11. package/dist/component/Grade/UnitCircles.d.ts +7 -0
  12. package/dist/component/Grade/UnitCircles.js +58 -0
  13. package/dist/component/Grade/YearCircles.d.ts +7 -0
  14. package/dist/component/Grade/YearCircles.js +57 -0
  15. package/dist/component/OnlineInput/PasswardModal.js +38 -7
  16. package/dist/component/OnlineInput/PasswordIdModal.js +2 -2
  17. package/dist/component/Result/ScoreCircle.js +6 -4
  18. package/dist/component/TagBadge5s.d.ts +2 -2
  19. package/dist/functions/createQuizFncD.d.ts +11 -4
  20. package/dist/functions/gradeFnc.d.ts +1 -1
  21. package/dist/functions/gradeFnc.js +3 -3
  22. package/dist/functions/oldStorageFnc.js +17 -15
  23. package/dist/functions/questionFilterD.d.ts +5 -4
  24. package/dist/functions/questionFilterJ.d.ts +5 -4
  25. package/dist/functions/tagFncD.d.ts +1 -1
  26. package/dist/functions/tagFncD.js +8 -8
  27. package/dist/functions/tagFncJ.d.ts +1 -1
  28. package/dist/functions/tagFncJ.js +3 -3
  29. package/dist/functions/testFnc.js +4 -3
  30. package/dist/page/CoinPage.js +2 -2
  31. package/dist/page/GetBadgePage.js +2 -2
  32. package/dist/page/GradePage.js +9 -2
  33. package/dist/page/HomePage.js +3 -3
  34. package/dist/page/ReportPage.js +2 -2
  35. package/dist/quiz/Title.js +22 -10
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. 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,8 @@
1
+ import { Db } from "@nakamura-123/types";
2
+ import React from "react";
3
+ interface Props {
4
+ subject: Db.SubjectInfo;
5
+ index: number;
6
+ }
7
+ declare const BasicProgressBar: React.FC<Props>;
8
+ export default BasicProgressBar;
@@ -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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 (allFreeId_1, _a) { return __awaiter(void 0, [allFreeId_1, _a], void 0, function (allFreeId, _b) {
46
- var receipts, isExistedId;
47
- var dispatch = _b.dispatch;
48
- return __generator(this, function (_c) {
49
- switch (_c.label) {
50
- case 0: return [4 /*yield*/, (0, CoinFnc_1.restorePurchases)(dispatch, false)];
51
- case 1:
52
- receipts = _c.sent();
53
- isExistedId = hasPurchasedItems(receipts, allFreeId);
54
- if (!isExistedId) {
55
- // 返金などをされていて、flaseの場合、このIDのアイテムを削除し、store更新
56
- stores_1.coinStorage.removePurchasedItem(allFreeId);
57
- dispatch({ type: "setting/updateAllFreeState", payload: "none" });
58
- }
59
- return [2 /*return*/];
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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,7 @@
1
+ import React from "react";
2
+ import { QRQuery } from "../../types/filterType";
3
+ type Props = {
4
+ QuestionDBInfo: QRQuery;
5
+ };
6
+ declare const UnitCircles: React.FC<Props>;
7
+ export 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,7 @@
1
+ import React from "react";
2
+ import { QRQuery } from "../../types/filterType";
3
+ type Props = {
4
+ QuestionDBInfo: QRQuery;
5
+ };
6
+ declare const UnitCircles: React.FC<Props>;
7
+ export 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,7 @@
1
+ import React from "react";
2
+ import { QRQuery } from "../../types/filterType";
3
+ type Props = {
4
+ QuestionDBInfo: QRQuery;
5
+ };
6
+ declare const YearCircles: React.FC<Props>;
7
+ export default YearCircles;
@@ -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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
36
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = { appKey: appKey, password: password, saveData: inputSaveData };
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>パスワードを入力してください</common_1.MyText>
125
- <common_1.MyText>(4文字以上の半角英数)</common_1.MyText>
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: "center",
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
36
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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
- fontSize: 14,
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: 20,
55
+ fontSize: 18,
54
56
  },
55
57
  cnt: {
56
- fontSize: 15,
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 Porps {
3
+ interface Props {
4
4
  subject: Db.SubjectInfo;
5
5
  index: number;
6
6
  }
7
- declare const TagBadge5s: React.FC<Porps>;
7
+ declare const TagBadge5s: React.FC<Props>;
8
8
  export default TagBadge5s;
@@ -1,11 +1,18 @@
1
- import { CfgInitial, QuizInitial } from "@nakamura-123/stores";
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: startCfg, selected: Selected) => Store.DQInStore[];
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: startCfg, outOfUnitRange: number[], outOfYearRange: number[]) => Store.DQInStore[];
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: (totalCnt: number) => Promise<void>;
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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
36
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 (totalCnt) { return __awaiter(void 0, void 0, void 0, 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 (_1, _a) { return __awaiter(void 0, [_1, _a], void 0, function (_, _b) {
198
- var id;
199
- var dispatch = _b.dispatch;
200
- return __generator(this, function (_c) {
201
- switch (_c.label) {
202
- case 0: return [4 /*yield*/, loadOldData("id")];
203
- case 1:
204
- id = _c.sent();
205
- if (!id)
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
- dispatch({ type: "setting/updateOldId", payload: id[0] });
208
- return [2 /*return*/];
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;