@norcy/react-native-toolkit 0.1.19 → 0.1.21

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.
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AppBadgeHelper = exports.AppBadgeContext = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _PrefData = require("./PrefData");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const AppBadgeContext = exports.AppBadgeContext = /*#__PURE__*/_react.default.createContext({
11
+ appBadgeValue: [],
12
+ setAppBadgeValue: () => {}
13
+ });
14
+ const AppBadgeHelper = exports.AppBadgeHelper = {
15
+ initBadge: (context, badges) => {
16
+ _PrefData.PrefData.addListener(() => {
17
+ const clearedBadges = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.ClearBadge);
18
+ // 收集 Key 值
19
+ let allBadges = [];
20
+ const keys = Object.keys(badges);
21
+ for (const key of keys) {
22
+ const badge = badges[key];
23
+ // 动态占位的 key 值不存在,不应该被添加
24
+ if (badge.key) {
25
+ allBadges.push(badge.key);
26
+ }
27
+ }
28
+ console.log('allBadges', allBadges);
29
+
30
+ // 内存更新
31
+ AppBadgeHelper._calculateValidBadge(context, allBadges, clearedBadges);
32
+ });
33
+ },
34
+ // 最新红点 = appBadgs - clearedBadges
35
+ _calculateValidBadge: (context, allBadges, clearedBadges) => {
36
+ let result = [];
37
+ for (let i = 0; i < allBadges.length; ++i) {
38
+ const badge = allBadges[i];
39
+ // 展示过一次的就不再展示
40
+ if (!clearedBadges.includes(badge)) {
41
+ result.push(badge);
42
+ }
43
+ }
44
+ console.log('current badge', result);
45
+ context.setAppBadgeValue(result);
46
+ },
47
+ clearBadge: (context, scene) => {
48
+ // 内存判断
49
+ if (!AppBadgeHelper.hasBadge(context, scene)) {
50
+ return;
51
+ }
52
+
53
+ // 内存更新
54
+ AppBadgeHelper._calculateValidBadge(context, [...context.appBadgeValue],
55
+ // 必须深复制一下,不然不会引起 state 变化
56
+ [scene.key]);
57
+
58
+ // 硬盘更新
59
+ let clearBadges = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.ClearBadge);
60
+ if (!clearBadges.includes(scene.key)) {
61
+ clearBadges.push(scene.key);
62
+ _PrefData.PrefData.setValue(_PrefData.BuildInPrefs.ClearBadge, clearBadges);
63
+ }
64
+ },
65
+ hasBadge: (context, scene) => {
66
+ return context.appBadgeValue.includes(scene === null || scene === void 0 ? void 0 : scene.key) ? true : null;
67
+ }
68
+ };
69
+ //# sourceMappingURL=AppBadgeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_PrefData","obj","__esModule","default","AppBadgeContext","exports","React","createContext","appBadgeValue","setAppBadgeValue","AppBadgeHelper","initBadge","context","badges","PrefData","addListener","clearedBadges","getValue","BuildInPrefs","ClearBadge","allBadges","keys","Object","key","badge","push","console","log","_calculateValidBadge","result","i","length","includes","clearBadge","scene","hasBadge","clearBadges","setValue"],"sources":["AppBadgeContext.ts"],"sourcesContent":["import React from 'react';\nimport { BuildInPrefs, PrefData } from './PrefData';\n\ninterface AppBadgeContextType {\n appBadgeValue: string[];\n setAppBadgeValue: Function;\n}\nexport const AppBadgeContext = React.createContext<AppBadgeContextType>({\n appBadgeValue: [],\n setAppBadgeValue: () => {},\n});\n\nexport interface BadgeType {\n key: string;\n}\n\nexport const AppBadgeHelper = {\n initBadge: (\n context: AppBadgeContextType,\n badges: { [key: string]: BadgeType }\n ) => {\n PrefData.addListener(() => {\n const clearedBadges = PrefData.getValue(BuildInPrefs.ClearBadge);\n // 收集 Key 值\n let allBadges = [];\n const keys = Object.keys(badges);\n for (const key of keys) {\n const badge = badges[key];\n // 动态占位的 key 值不存在,不应该被添加\n if (badge.key) {\n allBadges.push(badge.key);\n }\n }\n console.log('allBadges', allBadges);\n\n // 内存更新\n AppBadgeHelper._calculateValidBadge(context, allBadges, clearedBadges);\n });\n },\n\n // 最新红点 = appBadgs - clearedBadges\n _calculateValidBadge: (\n context: AppBadgeContextType,\n allBadges: string[],\n clearedBadges: string[]\n ) => {\n let result = [];\n for (let i = 0; i < allBadges.length; ++i) {\n const badge = allBadges[i];\n // 展示过一次的就不再展示\n if (!clearedBadges.includes(badge)) {\n result.push(badge);\n }\n }\n console.log('current badge', result);\n context.setAppBadgeValue(result);\n },\n\n clearBadge: (context: AppBadgeContextType, scene: BadgeType) => {\n // 内存判断\n if (!AppBadgeHelper.hasBadge(context, scene)) {\n return;\n }\n\n // 内存更新\n AppBadgeHelper._calculateValidBadge(\n context,\n [...context.appBadgeValue], // 必须深复制一下,不然不会引起 state 变化\n [scene.key]\n );\n\n // 硬盘更新\n let clearBadges = PrefData.getValue(BuildInPrefs.ClearBadge);\n if (!clearBadges.includes(scene.key)) {\n clearBadges.push(scene.key);\n PrefData.setValue(BuildInPrefs.ClearBadge, clearBadges);\n }\n },\n\n hasBadge: (context: AppBadgeContextType, scene: BadgeType) => {\n return context.appBadgeValue.includes(scene?.key) ? true : null;\n },\n};\n"],"mappings":"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"}
@@ -43,23 +43,23 @@ const FrequenceManager = exports.FrequenceManager = {
43
43
  console.log('[Frequence] 无限制', configValue, config);
44
44
  return true;
45
45
  },
46
- markFinishForCount: configKey => {
46
+ markFinishForCount: config => {
47
47
  var _PrefData$getValue2;
48
48
  const configs = (_PrefData$getValue2 = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue2 !== void 0 ? _PrefData$getValue2 : {};
49
- if (!configs[configKey]) {
50
- configs[configKey] = new FreConfigValueType();
49
+ if (!configs[config.key]) {
50
+ configs[config.key] = new FreConfigValueType();
51
51
  }
52
- configs[configKey].count++;
52
+ configs[config.key].count++;
53
53
  // console.log('[Frequence] mark finish', configs[config.key]);
54
54
  _PrefData.PrefData.setValue(_PrefData.BuildInPrefs.FrequenceConfig, configs);
55
55
  },
56
- markFinishForTime: configKey => {
56
+ markFinishForTime: config => {
57
57
  var _PrefData$getValue3;
58
58
  const configs = (_PrefData$getValue3 = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue3 !== void 0 ? _PrefData$getValue3 : {};
59
- if (!configs[configKey]) {
60
- configs[configKey] = new FreConfigValueType();
59
+ if (!configs[config.key]) {
60
+ configs[config.key] = new FreConfigValueType();
61
61
  }
62
- configs[configKey].lastTimestamp = now();
62
+ configs[config.key].lastTimestamp = now();
63
63
  // console.log('[Frequence] mark finish', configs[config.key]);
64
64
  _PrefData.PrefData.setValue(_PrefData.BuildInPrefs.FrequenceConfig, configs);
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_PrefData","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","FreConfigValueType","constructor","count","lastTimestamp","now","Date","getTime","FrequenceManager","exports","canRun","config","_PrefData$getValue","_config$limit","_config$limit2","_config$gap","_config$gap2","configs","PrefData","getValue","BuildInPrefs","FrequenceConfig","configValue","limit","console","log","gap","markFinishForCount","configKey","_PrefData$getValue2","setValue","markFinishForTime","_PrefData$getValue3"],"sources":["Frequence.ts"],"sourcesContent":["import { BuildInPrefs, PrefData } from './PrefData';\n\nexport interface FreConfigType {\n key: string;\n limit?: number; // 0 表示无限次提示\n gap?: number; // 单位:秒;0 表示不间断提示\n}\n\nclass FreConfigValueType {\n lastTimestamp: number; // 上一次展示的时间,配合 gap 计算\n count: number; // 实际展示的次数,配合 limit 计算\n constructor() {\n this.count = 0;\n this.lastTimestamp = 0;\n }\n}\n\nconst now = () => {\n return new Date().getTime() / 1000;\n};\n\nexport const FrequenceManager = {\n canRun: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n const configValue: FreConfigValueType = configs[config.key];\n\n // 优先判断 Count\n if ((config.limit ?? 0) > 0 && configValue.count >= (config.limit ?? 0)) {\n console.log('[Frequence] 次数限制', configValue, config);\n return false;\n }\n // 再判断 Time\n if (\n (config.gap ?? 0) > 0 &&\n now() - configValue.lastTimestamp < (config.gap ?? 0)\n ) {\n console.log('[Frequence] 时间限制', configValue, config);\n return false;\n }\n\n console.log('[Frequence] 无限制', configValue, config);\n return true;\n },\n\n markFinishForCount: (configKey: string) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[configKey]) {\n configs[configKey] = new FreConfigValueType();\n }\n configs[configKey].count++;\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n\n markFinishForTime: (configKey: string) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[configKey]) {\n configs[configKey] = new FreConfigValueType();\n }\n configs[configKey].lastTimestamp = now();\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_PrefData","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","FreConfigValueType","constructor","count","lastTimestamp","now","Date","getTime","FrequenceManager","exports","canRun","config","_PrefData$getValue","_config$limit","_config$limit2","_config$gap","_config$gap2","configs","PrefData","getValue","BuildInPrefs","FrequenceConfig","configValue","limit","console","log","gap","markFinishForCount","_PrefData$getValue2","setValue","markFinishForTime","_PrefData$getValue3"],"sources":["Frequence.ts"],"sourcesContent":["import { BuildInPrefs, PrefData } from './PrefData';\n\nexport interface FreConfigType {\n key: string;\n limit?: number; // 0 表示无限次提示\n gap?: number; // 单位:秒;0 表示不间断提示\n}\n\nclass FreConfigValueType {\n lastTimestamp: number; // 上一次展示的时间,配合 gap 计算\n count: number; // 实际展示的次数,配合 limit 计算\n constructor() {\n this.count = 0;\n this.lastTimestamp = 0;\n }\n}\n\nconst now = () => {\n return new Date().getTime() / 1000;\n};\n\nexport const FrequenceManager = {\n canRun: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n const configValue: FreConfigValueType = configs[config.key];\n\n // 优先判断 Count\n if ((config.limit ?? 0) > 0 && configValue.count >= (config.limit ?? 0)) {\n console.log('[Frequence] 次数限制', configValue, config);\n return false;\n }\n // 再判断 Time\n if (\n (config.gap ?? 0) > 0 &&\n now() - configValue.lastTimestamp < (config.gap ?? 0)\n ) {\n console.log('[Frequence] 时间限制', configValue, config);\n return false;\n }\n\n console.log('[Frequence] 无限制', configValue, config);\n return true;\n },\n\n markFinishForCount: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n configs[config.key].count++;\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n\n markFinishForTime: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n configs[config.key].lastTimestamp = now();\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_AppleLoginUtil","_Notification","_PrefData","_WeChatLoginUtil","_constant","AV","CURRENT_USER","WeiXinId","WeiXinSecret","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","PrefData","setValue","BuildInPrefs","LastLoginType","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","error2","LoginManager","exports","setup","WeChatId","WeChatSecret","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","_ref5","unionid","_ref6","uniqueId","getUniqueIdSync","_ref7","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","fetchWeChatAvatar","_ref8"],"sources":["LoginManager.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport { AppleLoginUtil } from './AppleLoginUtil';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nlet WeiXinId = '';\nlet WeiXinSecret = '';\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: number;\n}) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.set('toLDB', 1);\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n // PrefData.setValue(Prefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nexport const LoginManager = {\n setup: (WeChatId: string, WeChatSecret: string) => {\n WeiXinId = WeChatId;\n WeiXinSecret = WeChatSecret;\n },\n\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.LoginTypeVisitor) {\n const uniqueId = getUniqueIdSync();\n console.log(uniqueId);\n let userData = {\n nickname: 'Visitor',\n authData: {\n openid: uniqueId,\n access_token: uniqueId,\n expires_in: 99999999,\n loginType: 'visitor',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(userData.authData, userData, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n } else {\n onLoginFinish({ error: 'Unknown Login Type' });\n }\n },\n\n logOut: (callback: Function) => {\n console.log('onLogout');\n AV.User.logOut();\n CURRENT_USER = null;\n callback && callback();\n Notification.postNotification('onLogout');\n },\n\n isLogin: () => {\n return LoginManager.currentUser() != null;\n },\n\n isVisitor: () => {\n return (\n LoginManager.isLogin() &&\n LoginManager.currentUser()?.type === LoginType.LoginTypeVisitor\n );\n },\n\n currentUser: () => {\n // console.log('current user is ', CURRENT_USER);\n return CURRENT_USER;\n },\n\n batchUpdateUser: async (\n keys: string[],\n values: (string | Date)[],\n callback?: Function\n ) => {\n console.log('Batch Update User Begin: ' + keys + ' ' + values);\n const user = await AV.User.currentAsync();\n if (!user) {\n return;\n }\n const oldValues = [];\n for (let i = 0; i < keys.length; i++) {\n oldValues.push(user.get(keys[i]));\n user.set(keys[i], values[i]);\n }\n try {\n const newUser = await user.save();\n CURRENT_USER = AVUserToLocalUser(newUser);\n console.log('Batch Update User End', user);\n callback && callback();\n } catch (e) {\n console.error(e);\n for (let i = 0; i < keys.length; i++) {\n user.set(keys[i], oldValues[i]);\n }\n callback && callback(e);\n }\n },\n\n updateUser: (key: string, value: string, callback?: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n fetchWeChatAvatar: (callback: Function) => {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_AppleLoginUtil","_Notification","_PrefData","_WeChatLoginUtil","_constant","AV","CURRENT_USER","WeiXinId","WeiXinSecret","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","PrefData","setValue","BuildInPrefs","LastLoginType","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","error2","LoginManager","exports","setup","WeChatId","WeChatSecret","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","_ref5","unionid","_ref6","uniqueId","getUniqueIdSync","_ref7","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","fetchWeChatAvatar","_ref8"],"sources":["LoginManager.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport { AppleLoginUtil } from './AppleLoginUtil';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nlet WeiXinId = '';\nlet WeiXinSecret = '';\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: number;\n}) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.set('toLDB', 1);\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n // PrefData.setValue(Prefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nexport const LoginManager = {\n setup: (WeChatId: string, WeChatSecret: string) => {\n WeiXinId = WeChatId;\n WeiXinSecret = WeChatSecret;\n },\n\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.LoginTypeVisitor) {\n const uniqueId = getUniqueIdSync();\n console.log(uniqueId);\n let userData = {\n nickname: 'Visitor',\n authData: {\n openid: uniqueId,\n access_token: uniqueId,\n expires_in: 99999999,\n loginType: 'visitor',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(userData.authData, userData, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n } else {\n onLoginFinish({ error: 'Unknown Login Type' });\n }\n },\n\n logOut: (callback: Function) => {\n console.log('onLogout');\n AV.User.logOut();\n CURRENT_USER = null;\n callback && callback();\n Notification.postNotification('onLogout');\n },\n\n isLogin: () => {\n return LoginManager.currentUser() != null;\n },\n\n isVisitor: () => {\n return (\n LoginManager.isLogin() &&\n LoginManager.currentUser()?.type === LoginType.LoginTypeVisitor\n );\n },\n\n currentUser: () => {\n // console.log('current user is ', CURRENT_USER);\n return CURRENT_USER;\n },\n\n batchUpdateUser: async (\n keys: string[],\n values: (string | Date)[],\n callback?: Function\n ) => {\n console.log('Batch Update User Begin: ' + keys + ' ' + values);\n const user = await AV.User.currentAsync();\n if (!user) {\n return;\n }\n const oldValues = [];\n for (let i = 0; i < keys.length; i++) {\n oldValues.push(user.get(keys[i]));\n user.set(keys[i], values[i]);\n }\n try {\n const newUser = await user.save();\n CURRENT_USER = AVUserToLocalUser(newUser);\n console.log('Batch Update User End', user);\n callback && callback();\n } catch (e) {\n console.error(e);\n for (let i = 0; i < keys.length; i++) {\n user.set(keys[i], oldValues[i]);\n }\n callback && callback(e);\n }\n },\n\n updateUser: (key: string, value: string | Date, callback?: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n fetchWeChatAvatar: (callback: Function) => {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n"],"mappings":"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"}
@@ -101,9 +101,9 @@ const _handleReadMessages = items => {
101
101
  };
102
102
  if (_Frequence.FrequenceManager.canRun(freConfig)) {
103
103
  if (freConfig.gap) {
104
- _Frequence.FrequenceManager.markFinishForTime(freConfig.key);
104
+ _Frequence.FrequenceManager.markFinishForTime(freConfig);
105
105
  } else if (freConfig.limit) {
106
- _Frequence.FrequenceManager.markFinishForCount(freConfig.key);
106
+ _Frequence.FrequenceManager.markFinishForCount(freConfig);
107
107
  }
108
108
  item.isRead = false;
109
109
  item.updatedAt = new Date().toString();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_ConfigDataModel","_Frequence","_LoginManager","_PrefData","_Tool","_VipManager","AV","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyMessages","_filterByVersion","items","ret","curVer","getReadableVersion","version","item","_item$minVer","_item$maxVer","minVer","trim","maxVer","length","push","_filterByVip","isVip","VipManager","isForeverVip","vipFilter","_filterByUser","users","LoginManager","isLogin","_LoginManager$current","includes","currentUser","AVUser","get","_handleReadMessages","__DEV__","readMsgs","PrefData","getValue","BuildInPrefs","Messages","objectId","isRead","_item$key","key","config","ConfigDataModel","getVersionConfig","hasNewVersion","updatedAt","Date","toString","freConfig","limit","gap","FrequenceManager","canRun","markFinishForTime","markFinishForCount","MessageModel","exports","fetch","query","Query","equalTo","Platform","OS","descending","find","then","console","log","map","Tool","jsonify","sort","a","b","dateA","getTime","dateB","emitChange","catch","e","error","getUnreadMessages","filter","getAllMessages","markMessageRead","message","setValue","emit","slice","addListenerOnce","callback","once"],"sources":["MessageModel.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager } from './LoginManager';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\ninterface Message {\n objectId: string;\n android: boolean;\n ios: boolean;\n title?: string;\n content?: string;\n maxVer?: string;\n minVer?: string;\n key?: string;\n updatedAt: string;\n valid: boolean;\n vipFilter?: number;\n isRead: boolean;\n users?: string[];\n limit?: number;\n gap?: number;\n}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.minVer?.trim();\n const maxVer = item.maxVer?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (minVer?.length && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (maxVer?.length && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.vipFilter;\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _filterByUser = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n const users = item.users;\n if (users?.length) {\n if (LoginManager.isLogin()) {\n if (\n users?.includes(LoginManager.currentUser()?.AVUser.get('objectId'))\n ) {\n ret.push(item);\n }\n }\n } else {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _handleReadMessages = (items: Message[]): Message[] => {\n if (__DEV__) {\n // return items;\n }\n\n // 根据已读状态标为已读\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n for (const item of items) {\n if (readMsgs.includes(item.objectId)) {\n item.isRead = true;\n }\n }\n\n // 挑选需要强制未读\n for (const item of items) {\n if (!item.isRead) {\n continue;\n }\n if (item.key === 'changeLog') {\n // 强制升级弹窗\n // Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的\n const config = ConfigDataModel.getVersionConfig();\n if (ConfigDataModel.get('upgrade_alert') && config.hasNewVersion) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n if (freConfig.gap) {\n FrequenceManager.markFinishForTime(freConfig.key);\n } else if (freConfig.limit) {\n FrequenceManager.markFinishForCount(freConfig.key);\n }\n\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n }\n }\n\n return items;\n};\n\nexport const MessageModel = {\n fetch: () => {\n const query = new AV.Query('Message');\n query\n .equalTo('valid', true)\n .equalTo(Platform.OS, true)\n .descending('updatedAt');\n query\n .find()\n .then(async (items: any[]) => {\n console.log('Message 抓取完毕');\n MyMessages = items.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n MyMessages = _filterByVip(MyMessages);\n MyMessages = _filterByUser(MyMessages);\n MyMessages = _handleReadMessages(MyMessages);\n\n // 由于强制插入的未读消息更改了时间,因此需要重新排序\n MyMessages = MyMessages.sort((a: Message, b: Message) => {\n let dateA = new Date(a.updatedAt).getTime();\n let dateB = new Date(b.updatedAt).getTime();\n return dateB - dateA;\n });\n MessageModel.emitChange();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getUnreadMessages: (): Message[] => {\n return MyMessages.filter((item) => !item.isRead);\n },\n\n getAllMessages: (): Message[] => {\n return MyMessages;\n },\n\n markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n readMsgs.push(message.objectId);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n MessageModel.emitChange();\n },\n\n emitChange: () => {\n eventEmitter.emit('change', MyMessages.slice());\n },\n\n addListenerOnce: (callback: Function) => {\n eventEmitter.once('change', callback);\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_ConfigDataModel","_Frequence","_LoginManager","_PrefData","_Tool","_VipManager","AV","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyMessages","_filterByVersion","items","ret","curVer","getReadableVersion","version","item","_item$minVer","_item$maxVer","minVer","trim","maxVer","length","push","_filterByVip","isVip","VipManager","isForeverVip","vipFilter","_filterByUser","users","LoginManager","isLogin","_LoginManager$current","includes","currentUser","AVUser","get","_handleReadMessages","__DEV__","readMsgs","PrefData","getValue","BuildInPrefs","Messages","objectId","isRead","_item$key","key","config","ConfigDataModel","getVersionConfig","hasNewVersion","updatedAt","Date","toString","freConfig","limit","gap","FrequenceManager","canRun","markFinishForTime","markFinishForCount","MessageModel","exports","fetch","query","Query","equalTo","Platform","OS","descending","find","then","console","log","map","Tool","jsonify","sort","a","b","dateA","getTime","dateB","emitChange","catch","e","error","getUnreadMessages","filter","getAllMessages","markMessageRead","message","setValue","emit","slice","addListenerOnce","callback","once"],"sources":["MessageModel.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager } from './LoginManager';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\ninterface Message {\n objectId: string;\n android: boolean;\n ios: boolean;\n title?: string;\n content?: string;\n maxVer?: string;\n minVer?: string;\n key?: string;\n updatedAt: string;\n valid: boolean;\n vipFilter?: number;\n isRead: boolean;\n users?: string[];\n limit?: number;\n gap?: number;\n}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.minVer?.trim();\n const maxVer = item.maxVer?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (minVer?.length && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (maxVer?.length && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.vipFilter;\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _filterByUser = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n const users = item.users;\n if (users?.length) {\n if (LoginManager.isLogin()) {\n if (\n users?.includes(LoginManager.currentUser()?.AVUser.get('objectId'))\n ) {\n ret.push(item);\n }\n }\n } else {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _handleReadMessages = (items: Message[]): Message[] => {\n if (__DEV__) {\n // return items;\n }\n\n // 根据已读状态标为已读\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n for (const item of items) {\n if (readMsgs.includes(item.objectId)) {\n item.isRead = true;\n }\n }\n\n // 挑选需要强制未读\n for (const item of items) {\n if (!item.isRead) {\n continue;\n }\n if (item.key === 'changeLog') {\n // 强制升级弹窗\n // Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的\n const config = ConfigDataModel.getVersionConfig();\n if (ConfigDataModel.get('upgrade_alert') && config.hasNewVersion) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n if (freConfig.gap) {\n FrequenceManager.markFinishForTime(freConfig);\n } else if (freConfig.limit) {\n FrequenceManager.markFinishForCount(freConfig);\n }\n\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n }\n }\n\n return items;\n};\n\nexport const MessageModel = {\n fetch: () => {\n const query = new AV.Query('Message');\n query\n .equalTo('valid', true)\n .equalTo(Platform.OS, true)\n .descending('updatedAt');\n query\n .find()\n .then(async (items: any[]) => {\n console.log('Message 抓取完毕');\n MyMessages = items.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n MyMessages = _filterByVip(MyMessages);\n MyMessages = _filterByUser(MyMessages);\n MyMessages = _handleReadMessages(MyMessages);\n\n // 由于强制插入的未读消息更改了时间,因此需要重新排序\n MyMessages = MyMessages.sort((a: Message, b: Message) => {\n let dateA = new Date(a.updatedAt).getTime();\n let dateB = new Date(b.updatedAt).getTime();\n return dateB - dateA;\n });\n MessageModel.emitChange();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getUnreadMessages: (): Message[] => {\n return MyMessages.filter((item) => !item.isRead);\n },\n\n getAllMessages: (): Message[] => {\n return MyMessages;\n },\n\n markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n readMsgs.push(message.objectId);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n MessageModel.emitChange();\n },\n\n emitChange: () => {\n eventEmitter.emit('change', MyMessages.slice());\n },\n\n addListenerOnce: (callback: Function) => {\n eventEmitter.once('change', callback);\n },\n};\n"],"mappings":"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"}
@@ -35,6 +35,11 @@ const BuildInPrefs = exports.BuildInPrefs = {
35
35
  key: 'Message_Key5',
36
36
  type: 'array',
37
37
  default: []
38
+ },
39
+ ClearBadge: {
40
+ key: 'BADGE_DATA_KEY_20230307',
41
+ type: 'array',
42
+ default: []
38
43
  }
39
44
  };
40
45
  const getPrefByKey = (Prefs, key) => {
@@ -1 +1 @@
1
- {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","obj","__esModule","default","EventEmitter","eventEmitter","isDataLoaded","_PrefDatas","BuildInPrefs","exports","LastLoginType","key","type","DevVip","DevDanger","FrequenceConfig","Messages","getPrefByKey","Prefs","keyOfPref","PrefData","load","initPrefs","console","log","keys","pref","push","values","getMultiDatas","i","length","value","JSON","parse","parseInt","emit","getValue","setValue","finalValue","stringify","toString","storeData","addListener","callback","on","error","AsyncStorage","setItem","e","multiGet"],"sources":["PrefData.ts"],"sourcesContent":["import AsyncStorage from '@react-native-community/async-storage';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nlet isDataLoaded = false;\n\nexport interface PrefType {\n key: string;\n type: string;\n default: any;\n}\n\nexport interface PrefsType {\n [key: string]: PrefType;\n}\n\nconst _PrefDatas: { [key: string]: any } = {};\n\nexport const BuildInPrefs: PrefsType = {\n LastLoginType: {\n key: 'LastLoginType_Key',\n type: 'int',\n default: -1,\n },\n DevVip: {\n key: 'DevVip_Key',\n type: 'int',\n default: 0,\n },\n DevDanger: {\n key: 'DevDanger_Key',\n type: 'int',\n default: 0,\n },\n FrequenceConfig: {\n key: 'FrequenceConfig_Key',\n type: 'object',\n default: {},\n },\n Messages: {\n key: 'Message_Key5',\n type: 'array',\n default: [],\n },\n};\n\nconst getPrefByKey = (Prefs: PrefsType, key: string) => {\n for (const keyOfPref in Prefs) {\n if (Prefs[keyOfPref].key === key) {\n return Prefs[keyOfPref];\n }\n }\n return null;\n};\n\nexport const PrefData = {\n load: async (initPrefs: PrefsType) => {\n console.log('读取配置');\n let keys = [];\n const Prefs = { ...BuildInPrefs, ...initPrefs };\n for (const pref in Prefs) {\n keys.push(Prefs[pref].key);\n }\n const values = await getMultiDatas(keys);\n\n for (let i = 0; i < values.length; i++) {\n const key = values[i][0];\n const value = values[i][1];\n const pref = getPrefByKey(Prefs, key);\n if (!pref) {\n continue;\n }\n // console.log(key, value, pref);\n if (!value) {\n _PrefDatas[key] = pref.default;\n } else if (pref.type === 'object' || pref.type === 'array') {\n _PrefDatas[key] = JSON.parse(value);\n } else if (pref.type === 'int') {\n _PrefDatas[key] = parseInt(value, 10);\n } else if (pref.type === 'bool') {\n _PrefDatas[key] = JSON.parse(value);\n } else {\n _PrefDatas[key] = value;\n }\n // console.log(\n // '配置读取结果:',\n // key,\n // _PrefDatas[key],\n // typeof _PrefDatas[key],\n // );\n }\n\n eventEmitter.emit('load');\n isDataLoaded = true;\n },\n\n getValue: (pref: PrefType) => {\n return _PrefDatas[pref.key];\n },\n\n setValue: async (pref: PrefType, value: any) => {\n const key = pref.key;\n let finalValue: string;\n _PrefDatas[key] = value;\n if (pref.type === 'object' || pref.type === 'array') {\n finalValue = JSON.stringify(value);\n } else if (pref.type === 'int') {\n finalValue = value.toString();\n } else if (pref.type === 'bool') {\n finalValue = value.toString();\n } else {\n finalValue = value;\n }\n\n await storeData(key, finalValue);\n },\n\n addListener: (callback: Function) => {\n if (isDataLoaded) {\n callback && callback();\n return;\n }\n eventEmitter.on('load', callback);\n },\n};\n\nconst storeData = async (key: string, value: string) => {\n try {\n if (typeof value !== 'string') {\n console.error('只接受 String');\n }\n // console.log('save to storage ' + value);\n await AsyncStorage.setItem(key, value);\n } catch (e) {\n console.error(e);\n }\n};\n\nconst getMultiDatas = async (keys: string[]) => {\n try {\n const values = await AsyncStorage.multiGet(keys);\n // console.log('read from storage ' + values);\n return values;\n } catch (e) {\n console.error(e);\n return [];\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","obj","__esModule","default","EventEmitter","eventEmitter","isDataLoaded","_PrefDatas","BuildInPrefs","exports","LastLoginType","key","type","DevVip","DevDanger","FrequenceConfig","Messages","ClearBadge","getPrefByKey","Prefs","keyOfPref","PrefData","load","initPrefs","console","log","keys","pref","push","values","getMultiDatas","i","length","value","JSON","parse","parseInt","emit","getValue","setValue","finalValue","stringify","toString","storeData","addListener","callback","on","error","AsyncStorage","setItem","e","multiGet"],"sources":["PrefData.ts"],"sourcesContent":["import AsyncStorage from '@react-native-community/async-storage';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nlet isDataLoaded = false;\n\nexport interface PrefType {\n key: string;\n type: string;\n default: any;\n}\n\nexport interface PrefsType {\n [key: string]: PrefType;\n}\n\nconst _PrefDatas: { [key: string]: any } = {};\n\nexport const BuildInPrefs: PrefsType = {\n LastLoginType: {\n key: 'LastLoginType_Key',\n type: 'int',\n default: -1,\n },\n DevVip: {\n key: 'DevVip_Key',\n type: 'int',\n default: 0,\n },\n DevDanger: {\n key: 'DevDanger_Key',\n type: 'int',\n default: 0,\n },\n FrequenceConfig: {\n key: 'FrequenceConfig_Key',\n type: 'object',\n default: {},\n },\n Messages: {\n key: 'Message_Key5',\n type: 'array',\n default: [],\n },\n ClearBadge: {\n key: 'BADGE_DATA_KEY_20230307',\n type: 'array',\n default: [],\n },\n};\n\nconst getPrefByKey = (Prefs: PrefsType, key: string) => {\n for (const keyOfPref in Prefs) {\n if (Prefs[keyOfPref].key === key) {\n return Prefs[keyOfPref];\n }\n }\n return null;\n};\n\nexport const PrefData = {\n load: async (initPrefs: PrefsType) => {\n console.log('读取配置');\n let keys = [];\n const Prefs = { ...BuildInPrefs, ...initPrefs };\n for (const pref in Prefs) {\n keys.push(Prefs[pref].key);\n }\n const values = await getMultiDatas(keys);\n\n for (let i = 0; i < values.length; i++) {\n const key = values[i][0];\n const value = values[i][1];\n const pref = getPrefByKey(Prefs, key);\n if (!pref) {\n continue;\n }\n // console.log(key, value, pref);\n if (!value) {\n _PrefDatas[key] = pref.default;\n } else if (pref.type === 'object' || pref.type === 'array') {\n _PrefDatas[key] = JSON.parse(value);\n } else if (pref.type === 'int') {\n _PrefDatas[key] = parseInt(value, 10);\n } else if (pref.type === 'bool') {\n _PrefDatas[key] = JSON.parse(value);\n } else {\n _PrefDatas[key] = value;\n }\n // console.log(\n // '配置读取结果:',\n // key,\n // _PrefDatas[key],\n // typeof _PrefDatas[key],\n // );\n }\n\n eventEmitter.emit('load');\n isDataLoaded = true;\n },\n\n getValue: (pref: PrefType) => {\n return _PrefDatas[pref.key];\n },\n\n setValue: async (pref: PrefType, value: any) => {\n const key = pref.key;\n let finalValue: string;\n _PrefDatas[key] = value;\n if (pref.type === 'object' || pref.type === 'array') {\n finalValue = JSON.stringify(value);\n } else if (pref.type === 'int') {\n finalValue = value.toString();\n } else if (pref.type === 'bool') {\n finalValue = value.toString();\n } else {\n finalValue = value;\n }\n\n await storeData(key, finalValue);\n },\n\n addListener: (callback: Function) => {\n if (isDataLoaded) {\n callback && callback();\n return;\n }\n eventEmitter.on('load', callback);\n },\n};\n\nconst storeData = async (key: string, value: string) => {\n try {\n if (typeof value !== 'string') {\n console.error('只接受 String');\n }\n // console.log('save to storage ' + value);\n await AsyncStorage.setItem(key, value);\n } catch (e) {\n console.error(e);\n }\n};\n\nconst getMultiDatas = async (keys: string[]) => {\n try {\n const values = await AsyncStorage.multiGet(keys);\n // console.log('read from storage ' + values);\n return values;\n } catch (e) {\n console.error(e);\n return [];\n }\n};\n"],"mappings":"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"}
@@ -6,6 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  var _exportNames = {};
7
7
  exports.default = void 0;
8
8
  var _reactNative = require("react-native");
9
+ var _AppBadgeContext = require("./AppBadgeContext");
10
+ Object.keys(_AppBadgeContext).forEach(function (key) {
11
+ if (key === "default" || key === "__esModule") return;
12
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
13
+ if (key in exports && exports[key] === _AppBadgeContext[key]) return;
14
+ Object.defineProperty(exports, key, {
15
+ enumerable: true,
16
+ get: function () {
17
+ return _AppBadgeContext[key];
18
+ }
19
+ });
20
+ });
9
21
  var _AppleLoginUtil = require("./AppleLoginUtil");
10
22
  Object.keys(_AppleLoginUtil).forEach(function (key) {
11
23
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_AppleLoginUtil","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_ConfigDataModel","_DevConfig","_Frequence","_LoginManager","_MessageModel","_Notification","_PrefData","_ReportUtil","_SentryManager","_SyncPrefData","_Tool","_VipAndroidManager","_VipManager","_WeChatLoginUtil","_constant","ReactNativeToolkit","NativeModules","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppleLoginUtil';\nexport * from './ConfigDataModel';\nexport * from './DevConfig';\nexport * from './Frequence';\nexport * from './LoginManager';\nexport * from './MessageModel';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './Tool';\nexport * from './VipAndroidManager';\nexport * from './VipManager';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_AppBadgeContext","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_AppleLoginUtil","_ConfigDataModel","_DevConfig","_Frequence","_LoginManager","_MessageModel","_Notification","_PrefData","_ReportUtil","_SentryManager","_SyncPrefData","_Tool","_VipAndroidManager","_VipManager","_WeChatLoginUtil","_constant","ReactNativeToolkit","NativeModules","_default","default"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppBadgeContext';\nexport * from './AppleLoginUtil';\nexport * from './ConfigDataModel';\nexport * from './DevConfig';\nexport * from './Frequence';\nexport * from './LoginManager';\nexport * from './MessageModel';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './Tool';\nexport * from './VipAndroidManager';\nexport * from './VipManager';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\n"],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ import { BuildInPrefs, PrefData } from './PrefData';
3
+ export const AppBadgeContext = /*#__PURE__*/React.createContext({
4
+ appBadgeValue: [],
5
+ setAppBadgeValue: () => {}
6
+ });
7
+ export const AppBadgeHelper = {
8
+ initBadge: (context, badges) => {
9
+ PrefData.addListener(() => {
10
+ const clearedBadges = PrefData.getValue(BuildInPrefs.ClearBadge);
11
+ // 收集 Key 值
12
+ let allBadges = [];
13
+ const keys = Object.keys(badges);
14
+ for (const key of keys) {
15
+ const badge = badges[key];
16
+ // 动态占位的 key 值不存在,不应该被添加
17
+ if (badge.key) {
18
+ allBadges.push(badge.key);
19
+ }
20
+ }
21
+ console.log('allBadges', allBadges);
22
+
23
+ // 内存更新
24
+ AppBadgeHelper._calculateValidBadge(context, allBadges, clearedBadges);
25
+ });
26
+ },
27
+ // 最新红点 = appBadgs - clearedBadges
28
+ _calculateValidBadge: (context, allBadges, clearedBadges) => {
29
+ let result = [];
30
+ for (let i = 0; i < allBadges.length; ++i) {
31
+ const badge = allBadges[i];
32
+ // 展示过一次的就不再展示
33
+ if (!clearedBadges.includes(badge)) {
34
+ result.push(badge);
35
+ }
36
+ }
37
+ console.log('current badge', result);
38
+ context.setAppBadgeValue(result);
39
+ },
40
+ clearBadge: (context, scene) => {
41
+ // 内存判断
42
+ if (!AppBadgeHelper.hasBadge(context, scene)) {
43
+ return;
44
+ }
45
+
46
+ // 内存更新
47
+ AppBadgeHelper._calculateValidBadge(context, [...context.appBadgeValue],
48
+ // 必须深复制一下,不然不会引起 state 变化
49
+ [scene.key]);
50
+
51
+ // 硬盘更新
52
+ let clearBadges = PrefData.getValue(BuildInPrefs.ClearBadge);
53
+ if (!clearBadges.includes(scene.key)) {
54
+ clearBadges.push(scene.key);
55
+ PrefData.setValue(BuildInPrefs.ClearBadge, clearBadges);
56
+ }
57
+ },
58
+ hasBadge: (context, scene) => {
59
+ return context.appBadgeValue.includes(scene === null || scene === void 0 ? void 0 : scene.key) ? true : null;
60
+ }
61
+ };
62
+ //# sourceMappingURL=AppBadgeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","BuildInPrefs","PrefData","AppBadgeContext","createContext","appBadgeValue","setAppBadgeValue","AppBadgeHelper","initBadge","context","badges","addListener","clearedBadges","getValue","ClearBadge","allBadges","keys","Object","key","badge","push","console","log","_calculateValidBadge","result","i","length","includes","clearBadge","scene","hasBadge","clearBadges","setValue"],"sources":["AppBadgeContext.ts"],"sourcesContent":["import React from 'react';\nimport { BuildInPrefs, PrefData } from './PrefData';\n\ninterface AppBadgeContextType {\n appBadgeValue: string[];\n setAppBadgeValue: Function;\n}\nexport const AppBadgeContext = React.createContext<AppBadgeContextType>({\n appBadgeValue: [],\n setAppBadgeValue: () => {},\n});\n\nexport interface BadgeType {\n key: string;\n}\n\nexport const AppBadgeHelper = {\n initBadge: (\n context: AppBadgeContextType,\n badges: { [key: string]: BadgeType }\n ) => {\n PrefData.addListener(() => {\n const clearedBadges = PrefData.getValue(BuildInPrefs.ClearBadge);\n // 收集 Key 值\n let allBadges = [];\n const keys = Object.keys(badges);\n for (const key of keys) {\n const badge = badges[key];\n // 动态占位的 key 值不存在,不应该被添加\n if (badge.key) {\n allBadges.push(badge.key);\n }\n }\n console.log('allBadges', allBadges);\n\n // 内存更新\n AppBadgeHelper._calculateValidBadge(context, allBadges, clearedBadges);\n });\n },\n\n // 最新红点 = appBadgs - clearedBadges\n _calculateValidBadge: (\n context: AppBadgeContextType,\n allBadges: string[],\n clearedBadges: string[]\n ) => {\n let result = [];\n for (let i = 0; i < allBadges.length; ++i) {\n const badge = allBadges[i];\n // 展示过一次的就不再展示\n if (!clearedBadges.includes(badge)) {\n result.push(badge);\n }\n }\n console.log('current badge', result);\n context.setAppBadgeValue(result);\n },\n\n clearBadge: (context: AppBadgeContextType, scene: BadgeType) => {\n // 内存判断\n if (!AppBadgeHelper.hasBadge(context, scene)) {\n return;\n }\n\n // 内存更新\n AppBadgeHelper._calculateValidBadge(\n context,\n [...context.appBadgeValue], // 必须深复制一下,不然不会引起 state 变化\n [scene.key]\n );\n\n // 硬盘更新\n let clearBadges = PrefData.getValue(BuildInPrefs.ClearBadge);\n if (!clearBadges.includes(scene.key)) {\n clearBadges.push(scene.key);\n PrefData.setValue(BuildInPrefs.ClearBadge, clearBadges);\n }\n },\n\n hasBadge: (context: AppBadgeContextType, scene: BadgeType) => {\n return context.appBadgeValue.includes(scene?.key) ? true : null;\n },\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,QAAQ,QAAQ,YAAY;AAMnD,OAAO,MAAMC,eAAe,gBAAGH,KAAK,CAACI,aAAa,CAAsB;EACtEC,aAAa,EAAE,EAAE;EACjBC,gBAAgB,EAAEA,CAAA,KAAM,CAAC;AAC3B,CAAC,CAAC;AAMF,OAAO,MAAMC,cAAc,GAAG;EAC5BC,SAAS,EAAEA,CACTC,OAA4B,EAC5BC,MAAoC,KACjC;IACHR,QAAQ,CAACS,WAAW,CAAC,MAAM;MACzB,MAAMC,aAAa,GAAGV,QAAQ,CAACW,QAAQ,CAACZ,YAAY,CAACa,UAAU,CAAC;MAChE;MACA,IAAIC,SAAS,GAAG,EAAE;MAClB,MAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACN,MAAM,CAAC;MAChC,KAAK,MAAMQ,GAAG,IAAIF,IAAI,EAAE;QACtB,MAAMG,KAAK,GAAGT,MAAM,CAACQ,GAAG,CAAC;QACzB;QACA,IAAIC,KAAK,CAACD,GAAG,EAAE;UACbH,SAAS,CAACK,IAAI,CAACD,KAAK,CAACD,GAAG,CAAC;QAC3B;MACF;MACAG,OAAO,CAACC,GAAG,CAAC,WAAW,EAAEP,SAAS,CAAC;;MAEnC;MACAR,cAAc,CAACgB,oBAAoB,CAACd,OAAO,EAAEM,SAAS,EAAEH,aAAa,CAAC;IACxE,CAAC,CAAC;EACJ,CAAC;EAED;EACAW,oBAAoB,EAAEA,CACpBd,OAA4B,EAC5BM,SAAmB,EACnBH,aAAuB,KACpB;IACH,IAAIY,MAAM,GAAG,EAAE;IACf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,SAAS,CAACW,MAAM,EAAE,EAAED,CAAC,EAAE;MACzC,MAAMN,KAAK,GAAGJ,SAAS,CAACU,CAAC,CAAC;MAC1B;MACA,IAAI,CAACb,aAAa,CAACe,QAAQ,CAACR,KAAK,CAAC,EAAE;QAClCK,MAAM,CAACJ,IAAI,CAACD,KAAK,CAAC;MACpB;IACF;IACAE,OAAO,CAACC,GAAG,CAAC,eAAe,EAAEE,MAAM,CAAC;IACpCf,OAAO,CAACH,gBAAgB,CAACkB,MAAM,CAAC;EAClC,CAAC;EAEDI,UAAU,EAAEA,CAACnB,OAA4B,EAAEoB,KAAgB,KAAK;IAC9D;IACA,IAAI,CAACtB,cAAc,CAACuB,QAAQ,CAACrB,OAAO,EAAEoB,KAAK,CAAC,EAAE;MAC5C;IACF;;IAEA;IACAtB,cAAc,CAACgB,oBAAoB,CACjCd,OAAO,EACP,CAAC,GAAGA,OAAO,CAACJ,aAAa,CAAC;IAAE;IAC5B,CAACwB,KAAK,CAACX,GAAG,CACZ,CAAC;;IAED;IACA,IAAIa,WAAW,GAAG7B,QAAQ,CAACW,QAAQ,CAACZ,YAAY,CAACa,UAAU,CAAC;IAC5D,IAAI,CAACiB,WAAW,CAACJ,QAAQ,CAACE,KAAK,CAACX,GAAG,CAAC,EAAE;MACpCa,WAAW,CAACX,IAAI,CAACS,KAAK,CAACX,GAAG,CAAC;MAC3BhB,QAAQ,CAAC8B,QAAQ,CAAC/B,YAAY,CAACa,UAAU,EAAEiB,WAAW,CAAC;IACzD;EACF,CAAC;EAEDD,QAAQ,EAAEA,CAACrB,OAA4B,EAAEoB,KAAgB,KAAK;IAC5D,OAAOpB,OAAO,CAACJ,aAAa,CAACsB,QAAQ,CAACE,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEX,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;EACjE;AACF,CAAC"}
@@ -37,23 +37,23 @@ export const FrequenceManager = {
37
37
  console.log('[Frequence] 无限制', configValue, config);
38
38
  return true;
39
39
  },
40
- markFinishForCount: configKey => {
40
+ markFinishForCount: config => {
41
41
  var _PrefData$getValue2;
42
42
  const configs = (_PrefData$getValue2 = PrefData.getValue(BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue2 !== void 0 ? _PrefData$getValue2 : {};
43
- if (!configs[configKey]) {
44
- configs[configKey] = new FreConfigValueType();
43
+ if (!configs[config.key]) {
44
+ configs[config.key] = new FreConfigValueType();
45
45
  }
46
- configs[configKey].count++;
46
+ configs[config.key].count++;
47
47
  // console.log('[Frequence] mark finish', configs[config.key]);
48
48
  PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);
49
49
  },
50
- markFinishForTime: configKey => {
50
+ markFinishForTime: config => {
51
51
  var _PrefData$getValue3;
52
52
  const configs = (_PrefData$getValue3 = PrefData.getValue(BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue3 !== void 0 ? _PrefData$getValue3 : {};
53
- if (!configs[configKey]) {
54
- configs[configKey] = new FreConfigValueType();
53
+ if (!configs[config.key]) {
54
+ configs[config.key] = new FreConfigValueType();
55
55
  }
56
- configs[configKey].lastTimestamp = now();
56
+ configs[config.key].lastTimestamp = now();
57
57
  // console.log('[Frequence] mark finish', configs[config.key]);
58
58
  PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BuildInPrefs","PrefData","FreConfigValueType","constructor","_defineProperty","count","lastTimestamp","now","Date","getTime","FrequenceManager","canRun","config","_PrefData$getValue","_config$limit","_config$limit2","_config$gap","_config$gap2","configs","getValue","FrequenceConfig","key","configValue","limit","console","log","gap","markFinishForCount","configKey","_PrefData$getValue2","setValue","markFinishForTime","_PrefData$getValue3"],"sources":["Frequence.ts"],"sourcesContent":["import { BuildInPrefs, PrefData } from './PrefData';\n\nexport interface FreConfigType {\n key: string;\n limit?: number; // 0 表示无限次提示\n gap?: number; // 单位:秒;0 表示不间断提示\n}\n\nclass FreConfigValueType {\n lastTimestamp: number; // 上一次展示的时间,配合 gap 计算\n count: number; // 实际展示的次数,配合 limit 计算\n constructor() {\n this.count = 0;\n this.lastTimestamp = 0;\n }\n}\n\nconst now = () => {\n return new Date().getTime() / 1000;\n};\n\nexport const FrequenceManager = {\n canRun: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n const configValue: FreConfigValueType = configs[config.key];\n\n // 优先判断 Count\n if ((config.limit ?? 0) > 0 && configValue.count >= (config.limit ?? 0)) {\n console.log('[Frequence] 次数限制', configValue, config);\n return false;\n }\n // 再判断 Time\n if (\n (config.gap ?? 0) > 0 &&\n now() - configValue.lastTimestamp < (config.gap ?? 0)\n ) {\n console.log('[Frequence] 时间限制', configValue, config);\n return false;\n }\n\n console.log('[Frequence] 无限制', configValue, config);\n return true;\n },\n\n markFinishForCount: (configKey: string) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[configKey]) {\n configs[configKey] = new FreConfigValueType();\n }\n configs[configKey].count++;\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n\n markFinishForTime: (configKey: string) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[configKey]) {\n configs[configKey] = new FreConfigValueType();\n }\n configs[configKey].lastTimestamp = now();\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["BuildInPrefs","PrefData","FreConfigValueType","constructor","_defineProperty","count","lastTimestamp","now","Date","getTime","FrequenceManager","canRun","config","_PrefData$getValue","_config$limit","_config$limit2","_config$gap","_config$gap2","configs","getValue","FrequenceConfig","key","configValue","limit","console","log","gap","markFinishForCount","_PrefData$getValue2","setValue","markFinishForTime","_PrefData$getValue3"],"sources":["Frequence.ts"],"sourcesContent":["import { BuildInPrefs, PrefData } from './PrefData';\n\nexport interface FreConfigType {\n key: string;\n limit?: number; // 0 表示无限次提示\n gap?: number; // 单位:秒;0 表示不间断提示\n}\n\nclass FreConfigValueType {\n lastTimestamp: number; // 上一次展示的时间,配合 gap 计算\n count: number; // 实际展示的次数,配合 limit 计算\n constructor() {\n this.count = 0;\n this.lastTimestamp = 0;\n }\n}\n\nconst now = () => {\n return new Date().getTime() / 1000;\n};\n\nexport const FrequenceManager = {\n canRun: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n const configValue: FreConfigValueType = configs[config.key];\n\n // 优先判断 Count\n if ((config.limit ?? 0) > 0 && configValue.count >= (config.limit ?? 0)) {\n console.log('[Frequence] 次数限制', configValue, config);\n return false;\n }\n // 再判断 Time\n if (\n (config.gap ?? 0) > 0 &&\n now() - configValue.lastTimestamp < (config.gap ?? 0)\n ) {\n console.log('[Frequence] 时间限制', configValue, config);\n return false;\n }\n\n console.log('[Frequence] 无限制', configValue, config);\n return true;\n },\n\n markFinishForCount: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n configs[config.key].count++;\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n\n markFinishForTime: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n configs[config.key].lastTimestamp = now();\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","getUniqueIdSync","AppleLoginUtil","Notification","BuildInPrefs","PrefData","WeChatLoginUtil","LoginState","LoginType","AV","require","CURRENT_USER","WeiXinId","WeiXinSecret","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","setValue","LastLoginType","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","OS","isNew","error2","LoginManager","setup","WeChatId","WeChatSecret","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","AUTHORIZED","_ref4","loginUser","error3","doLogin","_ref5","unionid","_ref6","uniqueId","_ref7","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","fetchWeChatAvatar","_ref8"],"sources":["LoginManager.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport { AppleLoginUtil } from './AppleLoginUtil';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nlet WeiXinId = '';\nlet WeiXinSecret = '';\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: number;\n}) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.set('toLDB', 1);\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n // PrefData.setValue(Prefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nexport const LoginManager = {\n setup: (WeChatId: string, WeChatSecret: string) => {\n WeiXinId = WeChatId;\n WeiXinSecret = WeChatSecret;\n },\n\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.LoginTypeVisitor) {\n const uniqueId = getUniqueIdSync();\n console.log(uniqueId);\n let userData = {\n nickname: 'Visitor',\n authData: {\n openid: uniqueId,\n access_token: uniqueId,\n expires_in: 99999999,\n loginType: 'visitor',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(userData.authData, userData, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n } else {\n onLoginFinish({ error: 'Unknown Login Type' });\n }\n },\n\n logOut: (callback: Function) => {\n console.log('onLogout');\n AV.User.logOut();\n CURRENT_USER = null;\n callback && callback();\n Notification.postNotification('onLogout');\n },\n\n isLogin: () => {\n return LoginManager.currentUser() != null;\n },\n\n isVisitor: () => {\n return (\n LoginManager.isLogin() &&\n LoginManager.currentUser()?.type === LoginType.LoginTypeVisitor\n );\n },\n\n currentUser: () => {\n // console.log('current user is ', CURRENT_USER);\n return CURRENT_USER;\n },\n\n batchUpdateUser: async (\n keys: string[],\n values: (string | Date)[],\n callback?: Function\n ) => {\n console.log('Batch Update User Begin: ' + keys + ' ' + values);\n const user = await AV.User.currentAsync();\n if (!user) {\n return;\n }\n const oldValues = [];\n for (let i = 0; i < keys.length; i++) {\n oldValues.push(user.get(keys[i]));\n user.set(keys[i], values[i]);\n }\n try {\n const newUser = await user.save();\n CURRENT_USER = AVUserToLocalUser(newUser);\n console.log('Batch Update User End', user);\n callback && callback();\n } catch (e) {\n console.error(e);\n for (let i = 0; i < keys.length; i++) {\n user.set(keys[i], oldValues[i]);\n }\n callback && callback(e);\n }\n },\n\n updateUser: (key: string, value: string, callback?: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n fetchWeChatAvatar: (callback: Function) => {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","getUniqueIdSync","AppleLoginUtil","Notification","BuildInPrefs","PrefData","WeChatLoginUtil","LoginState","LoginType","AV","require","CURRENT_USER","WeiXinId","WeiXinSecret","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","setValue","LastLoginType","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","OS","isNew","error2","LoginManager","setup","WeChatId","WeChatSecret","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","AUTHORIZED","_ref4","loginUser","error3","doLogin","_ref5","unionid","_ref6","uniqueId","_ref7","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","fetchWeChatAvatar","_ref8"],"sources":["LoginManager.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport { AppleLoginUtil } from './AppleLoginUtil';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nlet WeiXinId = '';\nlet WeiXinSecret = '';\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: number;\n}) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.set('toLDB', 1);\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n // PrefData.setValue(Prefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nexport const LoginManager = {\n setup: (WeChatId: string, WeChatSecret: string) => {\n WeiXinId = WeChatId;\n WeiXinSecret = WeChatSecret;\n },\n\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.LoginTypeVisitor) {\n const uniqueId = getUniqueIdSync();\n console.log(uniqueId);\n let userData = {\n nickname: 'Visitor',\n authData: {\n openid: uniqueId,\n access_token: uniqueId,\n expires_in: 99999999,\n loginType: 'visitor',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(userData.authData, userData, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n } else {\n onLoginFinish({ error: 'Unknown Login Type' });\n }\n },\n\n logOut: (callback: Function) => {\n console.log('onLogout');\n AV.User.logOut();\n CURRENT_USER = null;\n callback && callback();\n Notification.postNotification('onLogout');\n },\n\n isLogin: () => {\n return LoginManager.currentUser() != null;\n },\n\n isVisitor: () => {\n return (\n LoginManager.isLogin() &&\n LoginManager.currentUser()?.type === LoginType.LoginTypeVisitor\n );\n },\n\n currentUser: () => {\n // console.log('current user is ', CURRENT_USER);\n return CURRENT_USER;\n },\n\n batchUpdateUser: async (\n keys: string[],\n values: (string | Date)[],\n callback?: Function\n ) => {\n console.log('Batch Update User Begin: ' + keys + ' ' + values);\n const user = await AV.User.currentAsync();\n if (!user) {\n return;\n }\n const oldValues = [];\n for (let i = 0; i < keys.length; i++) {\n oldValues.push(user.get(keys[i]));\n user.set(keys[i], values[i]);\n }\n try {\n const newUser = await user.save();\n CURRENT_USER = AVUserToLocalUser(newUser);\n console.log('Batch Update User End', user);\n callback && callback();\n } catch (e) {\n console.error(e);\n for (let i = 0; i < keys.length; i++) {\n user.set(keys[i], oldValues[i]);\n }\n callback && callback(e);\n }\n },\n\n updateUser: (key: string, value: string | Date, callback?: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n fetchWeChatAvatar: (callback: Function) => {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n"],"mappings":"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"}
@@ -95,9 +95,9 @@ const _handleReadMessages = items => {
95
95
  };
96
96
  if (FrequenceManager.canRun(freConfig)) {
97
97
  if (freConfig.gap) {
98
- FrequenceManager.markFinishForTime(freConfig.key);
98
+ FrequenceManager.markFinishForTime(freConfig);
99
99
  } else if (freConfig.limit) {
100
- FrequenceManager.markFinishForCount(freConfig.key);
100
+ FrequenceManager.markFinishForCount(freConfig);
101
101
  }
102
102
  item.isRead = false;
103
103
  item.updatedAt = new Date().toString();
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","getReadableVersion","ConfigDataModel","FrequenceManager","LoginManager","BuildInPrefs","PrefData","Tool","VipManager","AV","require","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyMessages","_filterByVersion","items","ret","curVer","version","item","_item$minVer","_item$maxVer","minVer","trim","maxVer","length","push","_filterByVip","isVip","isForeverVip","vipFilter","_filterByUser","users","isLogin","_LoginManager$current","includes","currentUser","AVUser","get","_handleReadMessages","__DEV__","readMsgs","getValue","Messages","objectId","isRead","_item$key","key","config","getVersionConfig","hasNewVersion","updatedAt","Date","toString","freConfig","limit","gap","canRun","markFinishForTime","markFinishForCount","MessageModel","fetch","query","Query","equalTo","OS","descending","find","then","console","log","map","jsonify","sort","a","b","dateA","getTime","dateB","emitChange","catch","e","error","getUnreadMessages","filter","getAllMessages","markMessageRead","message","setValue","emit","slice","addListenerOnce","callback","once"],"sources":["MessageModel.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager } from './LoginManager';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\ninterface Message {\n objectId: string;\n android: boolean;\n ios: boolean;\n title?: string;\n content?: string;\n maxVer?: string;\n minVer?: string;\n key?: string;\n updatedAt: string;\n valid: boolean;\n vipFilter?: number;\n isRead: boolean;\n users?: string[];\n limit?: number;\n gap?: number;\n}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.minVer?.trim();\n const maxVer = item.maxVer?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (minVer?.length && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (maxVer?.length && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.vipFilter;\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _filterByUser = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n const users = item.users;\n if (users?.length) {\n if (LoginManager.isLogin()) {\n if (\n users?.includes(LoginManager.currentUser()?.AVUser.get('objectId'))\n ) {\n ret.push(item);\n }\n }\n } else {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _handleReadMessages = (items: Message[]): Message[] => {\n if (__DEV__) {\n // return items;\n }\n\n // 根据已读状态标为已读\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n for (const item of items) {\n if (readMsgs.includes(item.objectId)) {\n item.isRead = true;\n }\n }\n\n // 挑选需要强制未读\n for (const item of items) {\n if (!item.isRead) {\n continue;\n }\n if (item.key === 'changeLog') {\n // 强制升级弹窗\n // Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的\n const config = ConfigDataModel.getVersionConfig();\n if (ConfigDataModel.get('upgrade_alert') && config.hasNewVersion) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n if (freConfig.gap) {\n FrequenceManager.markFinishForTime(freConfig.key);\n } else if (freConfig.limit) {\n FrequenceManager.markFinishForCount(freConfig.key);\n }\n\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n }\n }\n\n return items;\n};\n\nexport const MessageModel = {\n fetch: () => {\n const query = new AV.Query('Message');\n query\n .equalTo('valid', true)\n .equalTo(Platform.OS, true)\n .descending('updatedAt');\n query\n .find()\n .then(async (items: any[]) => {\n console.log('Message 抓取完毕');\n MyMessages = items.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n MyMessages = _filterByVip(MyMessages);\n MyMessages = _filterByUser(MyMessages);\n MyMessages = _handleReadMessages(MyMessages);\n\n // 由于强制插入的未读消息更改了时间,因此需要重新排序\n MyMessages = MyMessages.sort((a: Message, b: Message) => {\n let dateA = new Date(a.updatedAt).getTime();\n let dateB = new Date(b.updatedAt).getTime();\n return dateB - dateA;\n });\n MessageModel.emitChange();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getUnreadMessages: (): Message[] => {\n return MyMessages.filter((item) => !item.isRead);\n },\n\n getAllMessages: (): Message[] => {\n return MyMessages;\n },\n\n markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n readMsgs.push(message.objectId);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n MessageModel.emitChange();\n },\n\n emitChange: () => {\n eventEmitter.emit('change', MyMessages.slice());\n },\n\n addListenerOnce: (callback: Function) => {\n eventEmitter.once('change', callback);\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","getReadableVersion","ConfigDataModel","FrequenceManager","LoginManager","BuildInPrefs","PrefData","Tool","VipManager","AV","require","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyMessages","_filterByVersion","items","ret","curVer","version","item","_item$minVer","_item$maxVer","minVer","trim","maxVer","length","push","_filterByVip","isVip","isForeverVip","vipFilter","_filterByUser","users","isLogin","_LoginManager$current","includes","currentUser","AVUser","get","_handleReadMessages","__DEV__","readMsgs","getValue","Messages","objectId","isRead","_item$key","key","config","getVersionConfig","hasNewVersion","updatedAt","Date","toString","freConfig","limit","gap","canRun","markFinishForTime","markFinishForCount","MessageModel","fetch","query","Query","equalTo","OS","descending","find","then","console","log","map","jsonify","sort","a","b","dateA","getTime","dateB","emitChange","catch","e","error","getUnreadMessages","filter","getAllMessages","markMessageRead","message","setValue","emit","slice","addListenerOnce","callback","once"],"sources":["MessageModel.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager } from './LoginManager';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\ninterface Message {\n objectId: string;\n android: boolean;\n ios: boolean;\n title?: string;\n content?: string;\n maxVer?: string;\n minVer?: string;\n key?: string;\n updatedAt: string;\n valid: boolean;\n vipFilter?: number;\n isRead: boolean;\n users?: string[];\n limit?: number;\n gap?: number;\n}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.minVer?.trim();\n const maxVer = item.maxVer?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (minVer?.length && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (maxVer?.length && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.vipFilter;\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _filterByUser = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n const users = item.users;\n if (users?.length) {\n if (LoginManager.isLogin()) {\n if (\n users?.includes(LoginManager.currentUser()?.AVUser.get('objectId'))\n ) {\n ret.push(item);\n }\n }\n } else {\n ret.push(item);\n }\n }\n return ret;\n};\n\nconst _handleReadMessages = (items: Message[]): Message[] => {\n if (__DEV__) {\n // return items;\n }\n\n // 根据已读状态标为已读\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n for (const item of items) {\n if (readMsgs.includes(item.objectId)) {\n item.isRead = true;\n }\n }\n\n // 挑选需要强制未读\n for (const item of items) {\n if (!item.isRead) {\n continue;\n }\n if (item.key === 'changeLog') {\n // 强制升级弹窗\n // Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的\n const config = ConfigDataModel.getVersionConfig();\n if (ConfigDataModel.get('upgrade_alert') && config.hasNewVersion) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n if (freConfig.gap) {\n FrequenceManager.markFinishForTime(freConfig);\n } else if (freConfig.limit) {\n FrequenceManager.markFinishForCount(freConfig);\n }\n\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n }\n }\n\n return items;\n};\n\nexport const MessageModel = {\n fetch: () => {\n const query = new AV.Query('Message');\n query\n .equalTo('valid', true)\n .equalTo(Platform.OS, true)\n .descending('updatedAt');\n query\n .find()\n .then(async (items: any[]) => {\n console.log('Message 抓取完毕');\n MyMessages = items.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n MyMessages = _filterByVip(MyMessages);\n MyMessages = _filterByUser(MyMessages);\n MyMessages = _handleReadMessages(MyMessages);\n\n // 由于强制插入的未读消息更改了时间,因此需要重新排序\n MyMessages = MyMessages.sort((a: Message, b: Message) => {\n let dateA = new Date(a.updatedAt).getTime();\n let dateB = new Date(b.updatedAt).getTime();\n return dateB - dateA;\n });\n MessageModel.emitChange();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getUnreadMessages: (): Message[] => {\n return MyMessages.filter((item) => !item.isRead);\n },\n\n getAllMessages: (): Message[] => {\n return MyMessages;\n },\n\n markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n readMsgs.push(message.objectId);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n MessageModel.emitChange();\n },\n\n emitChange: () => {\n eventEmitter.emit('change', MyMessages.slice());\n },\n\n addListenerOnce: (callback: Function) => {\n eventEmitter.once('change', callback);\n },\n};\n"],"mappings":"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"}
@@ -28,6 +28,11 @@ export const BuildInPrefs = {
28
28
  key: 'Message_Key5',
29
29
  type: 'array',
30
30
  default: []
31
+ },
32
+ ClearBadge: {
33
+ key: 'BADGE_DATA_KEY_20230307',
34
+ type: 'array',
35
+ default: []
31
36
  }
32
37
  };
33
38
  const getPrefByKey = (Prefs, key) => {
@@ -1 +1 @@
1
- {"version":3,"names":["AsyncStorage","EventEmitter","require","eventEmitter","isDataLoaded","_PrefDatas","BuildInPrefs","LastLoginType","key","type","default","DevVip","DevDanger","FrequenceConfig","Messages","getPrefByKey","Prefs","keyOfPref","PrefData","load","initPrefs","console","log","keys","pref","push","values","getMultiDatas","i","length","value","JSON","parse","parseInt","emit","getValue","setValue","finalValue","stringify","toString","storeData","addListener","callback","on","error","setItem","e","multiGet"],"sources":["PrefData.ts"],"sourcesContent":["import AsyncStorage from '@react-native-community/async-storage';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nlet isDataLoaded = false;\n\nexport interface PrefType {\n key: string;\n type: string;\n default: any;\n}\n\nexport interface PrefsType {\n [key: string]: PrefType;\n}\n\nconst _PrefDatas: { [key: string]: any } = {};\n\nexport const BuildInPrefs: PrefsType = {\n LastLoginType: {\n key: 'LastLoginType_Key',\n type: 'int',\n default: -1,\n },\n DevVip: {\n key: 'DevVip_Key',\n type: 'int',\n default: 0,\n },\n DevDanger: {\n key: 'DevDanger_Key',\n type: 'int',\n default: 0,\n },\n FrequenceConfig: {\n key: 'FrequenceConfig_Key',\n type: 'object',\n default: {},\n },\n Messages: {\n key: 'Message_Key5',\n type: 'array',\n default: [],\n },\n};\n\nconst getPrefByKey = (Prefs: PrefsType, key: string) => {\n for (const keyOfPref in Prefs) {\n if (Prefs[keyOfPref].key === key) {\n return Prefs[keyOfPref];\n }\n }\n return null;\n};\n\nexport const PrefData = {\n load: async (initPrefs: PrefsType) => {\n console.log('读取配置');\n let keys = [];\n const Prefs = { ...BuildInPrefs, ...initPrefs };\n for (const pref in Prefs) {\n keys.push(Prefs[pref].key);\n }\n const values = await getMultiDatas(keys);\n\n for (let i = 0; i < values.length; i++) {\n const key = values[i][0];\n const value = values[i][1];\n const pref = getPrefByKey(Prefs, key);\n if (!pref) {\n continue;\n }\n // console.log(key, value, pref);\n if (!value) {\n _PrefDatas[key] = pref.default;\n } else if (pref.type === 'object' || pref.type === 'array') {\n _PrefDatas[key] = JSON.parse(value);\n } else if (pref.type === 'int') {\n _PrefDatas[key] = parseInt(value, 10);\n } else if (pref.type === 'bool') {\n _PrefDatas[key] = JSON.parse(value);\n } else {\n _PrefDatas[key] = value;\n }\n // console.log(\n // '配置读取结果:',\n // key,\n // _PrefDatas[key],\n // typeof _PrefDatas[key],\n // );\n }\n\n eventEmitter.emit('load');\n isDataLoaded = true;\n },\n\n getValue: (pref: PrefType) => {\n return _PrefDatas[pref.key];\n },\n\n setValue: async (pref: PrefType, value: any) => {\n const key = pref.key;\n let finalValue: string;\n _PrefDatas[key] = value;\n if (pref.type === 'object' || pref.type === 'array') {\n finalValue = JSON.stringify(value);\n } else if (pref.type === 'int') {\n finalValue = value.toString();\n } else if (pref.type === 'bool') {\n finalValue = value.toString();\n } else {\n finalValue = value;\n }\n\n await storeData(key, finalValue);\n },\n\n addListener: (callback: Function) => {\n if (isDataLoaded) {\n callback && callback();\n return;\n }\n eventEmitter.on('load', callback);\n },\n};\n\nconst storeData = async (key: string, value: string) => {\n try {\n if (typeof value !== 'string') {\n console.error('只接受 String');\n }\n // console.log('save to storage ' + value);\n await AsyncStorage.setItem(key, value);\n } catch (e) {\n console.error(e);\n }\n};\n\nconst getMultiDatas = async (keys: string[]) => {\n try {\n const values = await AsyncStorage.multiGet(keys);\n // console.log('read from storage ' + values);\n return values;\n } catch (e) {\n console.error(e);\n return [];\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["AsyncStorage","EventEmitter","require","eventEmitter","isDataLoaded","_PrefDatas","BuildInPrefs","LastLoginType","key","type","default","DevVip","DevDanger","FrequenceConfig","Messages","ClearBadge","getPrefByKey","Prefs","keyOfPref","PrefData","load","initPrefs","console","log","keys","pref","push","values","getMultiDatas","i","length","value","JSON","parse","parseInt","emit","getValue","setValue","finalValue","stringify","toString","storeData","addListener","callback","on","error","setItem","e","multiGet"],"sources":["PrefData.ts"],"sourcesContent":["import AsyncStorage from '@react-native-community/async-storage';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nlet isDataLoaded = false;\n\nexport interface PrefType {\n key: string;\n type: string;\n default: any;\n}\n\nexport interface PrefsType {\n [key: string]: PrefType;\n}\n\nconst _PrefDatas: { [key: string]: any } = {};\n\nexport const BuildInPrefs: PrefsType = {\n LastLoginType: {\n key: 'LastLoginType_Key',\n type: 'int',\n default: -1,\n },\n DevVip: {\n key: 'DevVip_Key',\n type: 'int',\n default: 0,\n },\n DevDanger: {\n key: 'DevDanger_Key',\n type: 'int',\n default: 0,\n },\n FrequenceConfig: {\n key: 'FrequenceConfig_Key',\n type: 'object',\n default: {},\n },\n Messages: {\n key: 'Message_Key5',\n type: 'array',\n default: [],\n },\n ClearBadge: {\n key: 'BADGE_DATA_KEY_20230307',\n type: 'array',\n default: [],\n },\n};\n\nconst getPrefByKey = (Prefs: PrefsType, key: string) => {\n for (const keyOfPref in Prefs) {\n if (Prefs[keyOfPref].key === key) {\n return Prefs[keyOfPref];\n }\n }\n return null;\n};\n\nexport const PrefData = {\n load: async (initPrefs: PrefsType) => {\n console.log('读取配置');\n let keys = [];\n const Prefs = { ...BuildInPrefs, ...initPrefs };\n for (const pref in Prefs) {\n keys.push(Prefs[pref].key);\n }\n const values = await getMultiDatas(keys);\n\n for (let i = 0; i < values.length; i++) {\n const key = values[i][0];\n const value = values[i][1];\n const pref = getPrefByKey(Prefs, key);\n if (!pref) {\n continue;\n }\n // console.log(key, value, pref);\n if (!value) {\n _PrefDatas[key] = pref.default;\n } else if (pref.type === 'object' || pref.type === 'array') {\n _PrefDatas[key] = JSON.parse(value);\n } else if (pref.type === 'int') {\n _PrefDatas[key] = parseInt(value, 10);\n } else if (pref.type === 'bool') {\n _PrefDatas[key] = JSON.parse(value);\n } else {\n _PrefDatas[key] = value;\n }\n // console.log(\n // '配置读取结果:',\n // key,\n // _PrefDatas[key],\n // typeof _PrefDatas[key],\n // );\n }\n\n eventEmitter.emit('load');\n isDataLoaded = true;\n },\n\n getValue: (pref: PrefType) => {\n return _PrefDatas[pref.key];\n },\n\n setValue: async (pref: PrefType, value: any) => {\n const key = pref.key;\n let finalValue: string;\n _PrefDatas[key] = value;\n if (pref.type === 'object' || pref.type === 'array') {\n finalValue = JSON.stringify(value);\n } else if (pref.type === 'int') {\n finalValue = value.toString();\n } else if (pref.type === 'bool') {\n finalValue = value.toString();\n } else {\n finalValue = value;\n }\n\n await storeData(key, finalValue);\n },\n\n addListener: (callback: Function) => {\n if (isDataLoaded) {\n callback && callback();\n return;\n }\n eventEmitter.on('load', callback);\n },\n};\n\nconst storeData = async (key: string, value: string) => {\n try {\n if (typeof value !== 'string') {\n console.error('只接受 String');\n }\n // console.log('save to storage ' + value);\n await AsyncStorage.setItem(key, value);\n } catch (e) {\n console.error(e);\n }\n};\n\nconst getMultiDatas = async (keys: string[]) => {\n try {\n const values = await AsyncStorage.multiGet(keys);\n // console.log('read from storage ' + values);\n return values;\n } catch (e) {\n console.error(e);\n return [];\n }\n};\n"],"mappings":"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"}
@@ -3,6 +3,7 @@ const {
3
3
  ReactNativeToolkit
4
4
  } = NativeModules;
5
5
  export default ReactNativeToolkit;
6
+ export * from './AppBadgeContext';
6
7
  export * from './AppleLoginUtil';
7
8
  export * from './ConfigDataModel';
8
9
  export * from './DevConfig';
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","ReactNativeToolkit"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppleLoginUtil';\nexport * from './ConfigDataModel';\nexport * from './DevConfig';\nexport * from './Frequence';\nexport * from './LoginManager';\nexport * from './MessageModel';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './Tool';\nexport * from './VipAndroidManager';\nexport * from './VipManager';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAM5C,MAAM;EAAEC;AAAmB,CAAC,GAAGD,aAAa;AAE5C,eAAeC,kBAAkB;AACjC,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,YAAY;AAC1B,cAAc,cAAc;AAC5B,cAAc,iBAAiB;AAC/B,cAAc,gBAAgB;AAC9B,cAAc,QAAQ;AACtB,cAAc,qBAAqB;AACnC,cAAc,cAAc;AAC5B,cAAc,mBAAmB;AACjC,cAAc,YAAY"}
1
+ {"version":3,"names":["NativeModules","ReactNativeToolkit"],"sources":["index.tsx"],"sourcesContent":["import { NativeModules } from 'react-native';\n\ntype ReactNativeToolkitType = {\n multiply(a: number, b: number): Promise<number>;\n};\n\nconst { ReactNativeToolkit } = NativeModules;\n\nexport default ReactNativeToolkit as ReactNativeToolkitType;\nexport * from './AppBadgeContext';\nexport * from './AppleLoginUtil';\nexport * from './ConfigDataModel';\nexport * from './DevConfig';\nexport * from './Frequence';\nexport * from './LoginManager';\nexport * from './MessageModel';\nexport * from './Notification';\nexport * from './PrefData';\nexport * from './ReportUtil';\nexport * from './SentryManager';\nexport * from './SyncPrefData';\nexport * from './Tool';\nexport * from './VipAndroidManager';\nexport * from './VipManager';\nexport * from './WeChatLoginUtil';\nexport * from './constant';\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAM5C,MAAM;EAAEC;AAAmB,CAAC,GAAGD,aAAa;AAE5C,eAAeC,kBAAkB;AACjC,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,aAAa;AAC3B,cAAc,aAAa;AAC3B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,cAAc,YAAY;AAC1B,cAAc,cAAc;AAC5B,cAAc,iBAAiB;AAC/B,cAAc,gBAAgB;AAC9B,cAAc,QAAQ;AACtB,cAAc,qBAAqB;AACnC,cAAc,cAAc;AAC5B,cAAc,mBAAmB;AACjC,cAAc,YAAY"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ interface AppBadgeContextType {
3
+ appBadgeValue: string[];
4
+ setAppBadgeValue: Function;
5
+ }
6
+ export declare const AppBadgeContext: React.Context<AppBadgeContextType>;
7
+ export interface BadgeType {
8
+ key: string;
9
+ }
10
+ export declare const AppBadgeHelper: {
11
+ initBadge: (context: AppBadgeContextType, badges: {
12
+ [key: string]: BadgeType;
13
+ }) => void;
14
+ _calculateValidBadge: (context: AppBadgeContextType, allBadges: string[], clearedBadges: string[]) => void;
15
+ clearBadge: (context: AppBadgeContextType, scene: BadgeType) => void;
16
+ hasBadge: (context: AppBadgeContextType, scene: BadgeType) => true | null;
17
+ };
18
+ export {};
@@ -5,6 +5,6 @@ export interface FreConfigType {
5
5
  }
6
6
  export declare const FrequenceManager: {
7
7
  canRun: (config: FreConfigType) => boolean;
8
- markFinishForCount: (configKey: string) => void;
9
- markFinishForTime: (configKey: string) => void;
8
+ markFinishForCount: (config: FreConfigType) => void;
9
+ markFinishForTime: (config: FreConfigType) => void;
10
10
  };
@@ -8,7 +8,7 @@ export declare const LoginManager: {
8
8
  isVisitor: () => boolean;
9
9
  currentUser: () => UserType | null;
10
10
  batchUpdateUser: (keys: string[], values: (string | Date)[], callback?: Function) => Promise<void>;
11
- updateUser: (key: string, value: string, callback?: Function) => void;
11
+ updateUser: (key: string, value: string | Date, callback?: Function) => void;
12
12
  deleteUser: (callback: Function) => Promise<void>;
13
13
  lastLoginType: () => any;
14
14
  fetchWeChatAvatar: (callback: Function) => void;
@@ -3,6 +3,7 @@ type ReactNativeToolkitType = {
3
3
  };
4
4
  declare const _default: ReactNativeToolkitType;
5
5
  export default _default;
6
+ export * from './AppBadgeContext';
6
7
  export * from './AppleLoginUtil';
7
8
  export * from './ConfigDataModel';
8
9
  export * from './DevConfig';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norcy/react-native-toolkit",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "My Toolkit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -0,0 +1,83 @@
1
+ import React from 'react';
2
+ import { BuildInPrefs, PrefData } from './PrefData';
3
+
4
+ interface AppBadgeContextType {
5
+ appBadgeValue: string[];
6
+ setAppBadgeValue: Function;
7
+ }
8
+ export const AppBadgeContext = React.createContext<AppBadgeContextType>({
9
+ appBadgeValue: [],
10
+ setAppBadgeValue: () => {},
11
+ });
12
+
13
+ export interface BadgeType {
14
+ key: string;
15
+ }
16
+
17
+ export const AppBadgeHelper = {
18
+ initBadge: (
19
+ context: AppBadgeContextType,
20
+ badges: { [key: string]: BadgeType }
21
+ ) => {
22
+ PrefData.addListener(() => {
23
+ const clearedBadges = PrefData.getValue(BuildInPrefs.ClearBadge);
24
+ // 收集 Key 值
25
+ let allBadges = [];
26
+ const keys = Object.keys(badges);
27
+ for (const key of keys) {
28
+ const badge = badges[key];
29
+ // 动态占位的 key 值不存在,不应该被添加
30
+ if (badge.key) {
31
+ allBadges.push(badge.key);
32
+ }
33
+ }
34
+ console.log('allBadges', allBadges);
35
+
36
+ // 内存更新
37
+ AppBadgeHelper._calculateValidBadge(context, allBadges, clearedBadges);
38
+ });
39
+ },
40
+
41
+ // 最新红点 = appBadgs - clearedBadges
42
+ _calculateValidBadge: (
43
+ context: AppBadgeContextType,
44
+ allBadges: string[],
45
+ clearedBadges: string[]
46
+ ) => {
47
+ let result = [];
48
+ for (let i = 0; i < allBadges.length; ++i) {
49
+ const badge = allBadges[i];
50
+ // 展示过一次的就不再展示
51
+ if (!clearedBadges.includes(badge)) {
52
+ result.push(badge);
53
+ }
54
+ }
55
+ console.log('current badge', result);
56
+ context.setAppBadgeValue(result);
57
+ },
58
+
59
+ clearBadge: (context: AppBadgeContextType, scene: BadgeType) => {
60
+ // 内存判断
61
+ if (!AppBadgeHelper.hasBadge(context, scene)) {
62
+ return;
63
+ }
64
+
65
+ // 内存更新
66
+ AppBadgeHelper._calculateValidBadge(
67
+ context,
68
+ [...context.appBadgeValue], // 必须深复制一下,不然不会引起 state 变化
69
+ [scene.key]
70
+ );
71
+
72
+ // 硬盘更新
73
+ let clearBadges = PrefData.getValue(BuildInPrefs.ClearBadge);
74
+ if (!clearBadges.includes(scene.key)) {
75
+ clearBadges.push(scene.key);
76
+ PrefData.setValue(BuildInPrefs.ClearBadge, clearBadges);
77
+ }
78
+ },
79
+
80
+ hasBadge: (context: AppBadgeContextType, scene: BadgeType) => {
81
+ return context.appBadgeValue.includes(scene?.key) ? true : null;
82
+ },
83
+ };
package/src/Frequence.ts CHANGED
@@ -46,24 +46,24 @@ export const FrequenceManager = {
46
46
  return true;
47
47
  },
48
48
 
49
- markFinishForCount: (configKey: string) => {
49
+ markFinishForCount: (config: FreConfigType) => {
50
50
  const configs: { [key: string]: FreConfigValueType } =
51
51
  PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};
52
- if (!configs[configKey]) {
53
- configs[configKey] = new FreConfigValueType();
52
+ if (!configs[config.key]) {
53
+ configs[config.key] = new FreConfigValueType();
54
54
  }
55
- configs[configKey].count++;
55
+ configs[config.key].count++;
56
56
  // console.log('[Frequence] mark finish', configs[config.key]);
57
57
  PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);
58
58
  },
59
59
 
60
- markFinishForTime: (configKey: string) => {
60
+ markFinishForTime: (config: FreConfigType) => {
61
61
  const configs: { [key: string]: FreConfigValueType } =
62
62
  PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};
63
- if (!configs[configKey]) {
64
- configs[configKey] = new FreConfigValueType();
63
+ if (!configs[config.key]) {
64
+ configs[config.key] = new FreConfigValueType();
65
65
  }
66
- configs[configKey].lastTimestamp = now();
66
+ configs[config.key].lastTimestamp = now();
67
67
  // console.log('[Frequence] mark finish', configs[config.key]);
68
68
  PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);
69
69
  },
@@ -312,7 +312,7 @@ export const LoginManager = {
312
312
  }
313
313
  },
314
314
 
315
- updateUser: (key: string, value: string, callback?: Function) => {
315
+ updateUser: (key: string, value: string | Date, callback?: Function) => {
316
316
  LoginManager.batchUpdateUser([key], [value], callback);
317
317
  },
318
318
 
@@ -123,9 +123,9 @@ const _handleReadMessages = (items: Message[]): Message[] => {
123
123
  };
124
124
  if (FrequenceManager.canRun(freConfig)) {
125
125
  if (freConfig.gap) {
126
- FrequenceManager.markFinishForTime(freConfig.key);
126
+ FrequenceManager.markFinishForTime(freConfig);
127
127
  } else if (freConfig.limit) {
128
- FrequenceManager.markFinishForCount(freConfig.key);
128
+ FrequenceManager.markFinishForCount(freConfig);
129
129
  }
130
130
 
131
131
  item.isRead = false;
package/src/PrefData.ts CHANGED
@@ -43,6 +43,11 @@ export const BuildInPrefs: PrefsType = {
43
43
  type: 'array',
44
44
  default: [],
45
45
  },
46
+ ClearBadge: {
47
+ key: 'BADGE_DATA_KEY_20230307',
48
+ type: 'array',
49
+ default: [],
50
+ },
46
51
  };
47
52
 
48
53
  const getPrefByKey = (Prefs: PrefsType, key: string) => {
package/src/index.tsx CHANGED
@@ -7,6 +7,7 @@ type ReactNativeToolkitType = {
7
7
  const { ReactNativeToolkit } = NativeModules;
8
8
 
9
9
  export default ReactNativeToolkit as ReactNativeToolkitType;
10
+ export * from './AppBadgeContext';
10
11
  export * from './AppleLoginUtil';
11
12
  export * from './ConfigDataModel';
12
13
  export * from './DevConfig';