@norcy/react-native-toolkit 0.1.20 → 0.1.22

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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"}
@@ -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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"}
@@ -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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"}
@@ -4,6 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Tool = void 0;
7
+ var _react = require("react");
8
+ var _reactNativeSimpleToast = _interopRequireDefault(require("react-native-simple-toast"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const _isPlainObject = target => {
11
+ return target && target.toString() === '[object Object]' && Object.getPrototypeOf(target) === Object.prototype;
12
+ };
13
+ const _jsonify = target => {
14
+ if (target && typeof target.toJSON === 'function') return target.toJSON();
15
+ // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值
16
+ if (Array.isArray(target)) return target.map(_jsonify);
17
+ return target;
18
+ };
7
19
  const Tool = exports.Tool = {
8
20
  sleep: delay => new Promise(resolve => setTimeout(resolve, delay)),
9
21
  formatDate(date, fmt) {
@@ -35,18 +47,59 @@ const Tool = exports.Tool = {
35
47
  }
36
48
  return fmt;
37
49
  },
38
- isPlainObject: target => {
39
- return target && target.toString() === '[object Object]' && Object.getPrototypeOf(target) === Object.prototype;
50
+ jsonify: target => _isPlainObject(target) ? Object.keys(target).reduce((result, key) => ({
51
+ ...result,
52
+ [key]: _jsonify(target[key])
53
+ }), {}) : _jsonify(target),
54
+ isChinese: value => {
55
+ return /[\u4E00-\u9FA5]+/g.test(value);
40
56
  },
41
- _jsonify: target => {
42
- if (target && typeof target.toJSON === 'function') return target.toJSON();
43
- // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值
44
- if (Array.isArray(target)) return target.map(Tool._jsonify);
45
- return target;
57
+ isRemoteURL: str => {
58
+ return str.startsWith('http');
46
59
  },
47
- jsonify: target => Tool.isPlainObject(target) ? Object.keys(target).reduce((result, key) => ({
48
- ...result,
49
- [key]: Tool._jsonify(target[key])
50
- }), {}) : Tool._jsonify(target)
60
+ get_url_extension: url => {
61
+ var _url$split$;
62
+ return (_url$split$ = url.split(/[#?]/)[0]) === null || _url$split$ === void 0 || (_url$split$ = _url$split$.split('.')) === null || _url$split$ === void 0 || (_url$split$ = _url$split$.pop()) === null || _url$split$ === void 0 ? void 0 : _url$split$.trim();
63
+ },
64
+ generateObjectId: () => {
65
+ var timestamp = (new Date().getTime() / 1000 | 0).toString(16); // eslint-disable-line no-bitwise
66
+ return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {
67
+ return (Math.random() * 16 | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise
68
+ });
69
+ },
70
+
71
+ /**
72
+ * Format bytes as human-readable text.
73
+ *
74
+ * @param bytes Number of bytes.
75
+ * @param si True to use metric (SI) units, aka powers of 1000. False to use
76
+ * binary (IEC), aka powers of 1024.
77
+ * @param dp Number of decimal places to display.
78
+ *
79
+ * @return Formatted string.
80
+ */
81
+ humanFileSize: function (bytes) {
82
+ let si = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
83
+ let dp = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
84
+ const thresh = si ? 1000 : 1024;
85
+ if (Math.abs(bytes) < thresh) {
86
+ return bytes + ' B';
87
+ }
88
+ const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
89
+ let u = -1;
90
+ const r = 10 ** dp;
91
+ do {
92
+ bytes /= thresh;
93
+ ++u;
94
+ } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);
95
+ return bytes.toFixed(dp) + ' ' + units[u];
96
+ },
97
+ useForceUpdate: () => {
98
+ const [, setValue] = (0, _react.useState)(0);
99
+ return () => setValue(value => value + 1);
100
+ },
101
+ showToast: toast => {
102
+ _reactNativeSimpleToast.default.showWithGravity(toast, _reactNativeSimpleToast.default.SHORT, _reactNativeSimpleToast.default.CENTER);
103
+ }
51
104
  };
52
105
  //# sourceMappingURL=Tool.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Tool","exports","sleep","delay","Promise","resolve","setTimeout","formatDate","date","fmt","o","getMonth","getDate","getHours","getMinutes","getSeconds","Math","floor","getMilliseconds","test","replace","RegExp","$1","getFullYear","substr","length","k","toString","isPlainObject","target","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","jsonify","keys","reduce","result","key"],"sources":["Tool.ts"],"sourcesContent":["export const Tool = {\n sleep: (delay: number) =>\n new Promise((resolve) => setTimeout(resolve, delay)),\n\n formatDate(date: Date, fmt: string): string {\n fmt = fmt ? fmt : 'yyyy-MM-dd';\n var o: { [key: string]: number } = {\n 'M+': date.getMonth() + 1, //月份\n 'd+': date.getDate(), //日\n 'h+': date.getHours(), //小时\n 'm+': date.getMinutes(), //分\n 's+': date.getSeconds(), //秒\n 'q+': Math.floor((date.getMonth() + 3) / 3), //季度\n 'S': date.getMilliseconds(), //毫秒\n };\n\n // 获取年份\n if (/(y+)/i.test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (date.getFullYear() + '').substr(4 - RegExp.$1.length)\n );\n }\n\n for (var k in o) {\n if (new RegExp('(' + k + ')', 'i').test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (RegExp.$1.length === 1\n ? o[k]\n : ('00' + o[k]).substr(('' + o[k]).length)\n ).toString()\n );\n }\n }\n return fmt;\n },\n\n isPlainObject: (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n },\n\n _jsonify: (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(Tool._jsonify);\n return target;\n },\n\n jsonify: (target: any) =>\n Tool.isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: Tool._jsonify(target[key]),\n }),\n {}\n )\n : Tool._jsonify(target),\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_reactNativeSimpleToast","_interopRequireDefault","obj","__esModule","default","_isPlainObject","target","toString","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","Tool","exports","sleep","delay","Promise","resolve","setTimeout","formatDate","date","fmt","o","getMonth","getDate","getHours","getMinutes","getSeconds","Math","floor","getMilliseconds","test","replace","RegExp","$1","getFullYear","substr","length","k","jsonify","keys","reduce","result","key","isChinese","value","isRemoteURL","str","startsWith","get_url_extension","url","_url$split$","split","pop","trim","generateObjectId","timestamp","Date","getTime","random","toLowerCase","humanFileSize","bytes","si","arguments","undefined","dp","thresh","abs","units","u","r","round","toFixed","useForceUpdate","setValue","useState","showToast","toast","Toast","showWithGravity","SHORT","CENTER"],"sources":["Tool.ts"],"sourcesContent":["import { useState } from 'react';\nimport Toast from 'react-native-simple-toast';\n\nconst _isPlainObject = (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n};\n\nconst _jsonify = (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(_jsonify);\n return target;\n};\n\nexport const Tool = {\n sleep: (delay: number) =>\n new Promise((resolve) => setTimeout(resolve, delay)),\n\n formatDate(date: Date, fmt: string): string {\n fmt = fmt ? fmt : 'yyyy-MM-dd';\n var o: { [key: string]: number } = {\n 'M+': date.getMonth() + 1, //月份\n 'd+': date.getDate(), //日\n 'h+': date.getHours(), //小时\n 'm+': date.getMinutes(), //分\n 's+': date.getSeconds(), //秒\n 'q+': Math.floor((date.getMonth() + 3) / 3), //季度\n 'S': date.getMilliseconds(), //毫秒\n };\n\n // 获取年份\n if (/(y+)/i.test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (date.getFullYear() + '').substr(4 - RegExp.$1.length)\n );\n }\n\n for (var k in o) {\n if (new RegExp('(' + k + ')', 'i').test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (RegExp.$1.length === 1\n ? o[k]\n : ('00' + o[k]).substr(('' + o[k]).length)\n ).toString()\n );\n }\n }\n return fmt;\n },\n\n jsonify: (target: any) =>\n _isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: _jsonify(target[key]),\n }),\n {}\n )\n : _jsonify(target),\n\n isChinese: (value: string) => {\n return /[\\u4E00-\\u9FA5]+/g.test(value);\n },\n\n isRemoteURL: (str: string) => {\n return str.startsWith('http');\n },\n\n get_url_extension: (url: string) => {\n return url.split(/[#?]/)[0]?.split('.')?.pop()?.trim();\n },\n\n generateObjectId: () => {\n var timestamp = ((new Date().getTime() / 1000) | 0).toString(16); // eslint-disable-line no-bitwise\n return (\n timestamp +\n 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {\n return ((Math.random() * 16) | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise\n })\n );\n },\n\n /**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\n humanFileSize: (bytes: number, si = false, dp = 1) => {\n const thresh = si ? 1000 : 1024;\n\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n\n const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let u = -1;\n const r = 10 ** dp;\n\n do {\n bytes /= thresh;\n ++u;\n } while (\n Math.round(Math.abs(bytes) * r) / r >= thresh &&\n u < units.length - 1\n );\n\n return bytes.toFixed(dp) + ' ' + units[u];\n },\n\n useForceUpdate: () => {\n const [, setValue] = useState(0);\n return () => setValue((value) => value + 1);\n },\n\n showToast: (toast: string) => {\n Toast.showWithGravity(toast, Toast.SHORT, Toast.CENTER);\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":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AASA,IAAAC,eAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,eAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,eAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,eAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,gBAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,gBAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,gBAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,gBAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,UAAA,GAAAf,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAY,UAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,UAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,UAAA,GAAAhB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAa,UAAA,EAAAZ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAW,UAAA,CAAAX,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,UAAA,CAAAX,GAAA;IAAA;EAAA;AAAA;AACA,IAAAY,aAAA,GAAAjB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAc,aAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAY,aAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,aAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AACA,IAAAa,aAAA,GAAAlB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAe,aAAA,EAAAd,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAa,aAAA,CAAAb,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,aAAA,CAAAb,GAAA;IAAA;EAAA;AAAA;AACA,IAAAc,aAAA,GAAAnB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAgB,aAAA,EAAAf,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAc,aAAA,CAAAd,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAM,aAAA,CAAAd,GAAA;IAAA;EAAA;AAAA;AACA,IAAAe,SAAA,GAAApB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAiB,SAAA,EAAAhB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAe,SAAA,CAAAf,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,SAAA,CAAAf,GAAA;IAAA;EAAA;AAAA;AACA,IAAAgB,WAAA,GAAArB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAkB,WAAA,EAAAjB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAgB,WAAA,CAAAhB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAQ,WAAA,CAAAhB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAiB,cAAA,GAAAtB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAmB,cAAA,EAAAlB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAiB,cAAA,CAAAjB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAS,cAAA,CAAAjB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAkB,aAAA,GAAAvB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAoB,aAAA,EAAAnB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAkB,aAAA,CAAAlB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAU,aAAA,CAAAlB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAmB,KAAA,GAAAxB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAqB,KAAA,EAAApB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAmB,KAAA,CAAAnB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAW,KAAA,CAAAnB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAoB,kBAAA,GAAAzB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAsB,kBAAA,EAAArB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAoB,kBAAA,CAAApB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAY,kBAAA,CAAApB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAqB,WAAA,GAAA1B,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAuB,WAAA,EAAAtB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAqB,WAAA,CAAArB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAa,WAAA,CAAArB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAsB,gBAAA,GAAA3B,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAwB,gBAAA,EAAAvB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAsB,gBAAA,CAAAtB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAc,gBAAA,CAAAtB,GAAA;IAAA;EAAA;AAAA;AACA,IAAAuB,SAAA,GAAA5B,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAyB,SAAA,EAAAxB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAuB,SAAA,CAAAvB,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAe,SAAA,CAAAvB,GAAA;IAAA;EAAA;AAAA;AAlBA,MAAM;EAAEwB;AAAmB,CAAC,GAAGC,0BAAa;AAAC,IAAAC,QAAA,GAAArB,OAAA,CAAAsB,OAAA,GAE9BH,kBAAkB"}
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"}
@@ -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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"}
@@ -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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"}
@@ -1,3 +1,14 @@
1
+ import { useState } from 'react';
2
+ import Toast from 'react-native-simple-toast';
3
+ const _isPlainObject = target => {
4
+ return target && target.toString() === '[object Object]' && Object.getPrototypeOf(target) === Object.prototype;
5
+ };
6
+ const _jsonify = target => {
7
+ if (target && typeof target.toJSON === 'function') return target.toJSON();
8
+ // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值
9
+ if (Array.isArray(target)) return target.map(_jsonify);
10
+ return target;
11
+ };
1
12
  export const Tool = {
2
13
  sleep: delay => new Promise(resolve => setTimeout(resolve, delay)),
3
14
  formatDate(date, fmt) {
@@ -29,18 +40,59 @@ export const Tool = {
29
40
  }
30
41
  return fmt;
31
42
  },
32
- isPlainObject: target => {
33
- return target && target.toString() === '[object Object]' && Object.getPrototypeOf(target) === Object.prototype;
43
+ jsonify: target => _isPlainObject(target) ? Object.keys(target).reduce((result, key) => ({
44
+ ...result,
45
+ [key]: _jsonify(target[key])
46
+ }), {}) : _jsonify(target),
47
+ isChinese: value => {
48
+ return /[\u4E00-\u9FA5]+/g.test(value);
34
49
  },
35
- _jsonify: target => {
36
- if (target && typeof target.toJSON === 'function') return target.toJSON();
37
- // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值
38
- if (Array.isArray(target)) return target.map(Tool._jsonify);
39
- return target;
50
+ isRemoteURL: str => {
51
+ return str.startsWith('http');
40
52
  },
41
- jsonify: target => Tool.isPlainObject(target) ? Object.keys(target).reduce((result, key) => ({
42
- ...result,
43
- [key]: Tool._jsonify(target[key])
44
- }), {}) : Tool._jsonify(target)
53
+ get_url_extension: url => {
54
+ var _url$split$;
55
+ return (_url$split$ = url.split(/[#?]/)[0]) === null || _url$split$ === void 0 || (_url$split$ = _url$split$.split('.')) === null || _url$split$ === void 0 || (_url$split$ = _url$split$.pop()) === null || _url$split$ === void 0 ? void 0 : _url$split$.trim();
56
+ },
57
+ generateObjectId: () => {
58
+ var timestamp = (new Date().getTime() / 1000 | 0).toString(16); // eslint-disable-line no-bitwise
59
+ return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {
60
+ return (Math.random() * 16 | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise
61
+ });
62
+ },
63
+
64
+ /**
65
+ * Format bytes as human-readable text.
66
+ *
67
+ * @param bytes Number of bytes.
68
+ * @param si True to use metric (SI) units, aka powers of 1000. False to use
69
+ * binary (IEC), aka powers of 1024.
70
+ * @param dp Number of decimal places to display.
71
+ *
72
+ * @return Formatted string.
73
+ */
74
+ humanFileSize: function (bytes) {
75
+ let si = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
76
+ let dp = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
77
+ const thresh = si ? 1000 : 1024;
78
+ if (Math.abs(bytes) < thresh) {
79
+ return bytes + ' B';
80
+ }
81
+ const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
82
+ let u = -1;
83
+ const r = 10 ** dp;
84
+ do {
85
+ bytes /= thresh;
86
+ ++u;
87
+ } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);
88
+ return bytes.toFixed(dp) + ' ' + units[u];
89
+ },
90
+ useForceUpdate: () => {
91
+ const [, setValue] = useState(0);
92
+ return () => setValue(value => value + 1);
93
+ },
94
+ showToast: toast => {
95
+ Toast.showWithGravity(toast, Toast.SHORT, Toast.CENTER);
96
+ }
45
97
  };
46
98
  //# sourceMappingURL=Tool.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Tool","sleep","delay","Promise","resolve","setTimeout","formatDate","date","fmt","o","getMonth","getDate","getHours","getMinutes","getSeconds","Math","floor","getMilliseconds","test","replace","RegExp","$1","getFullYear","substr","length","k","toString","isPlainObject","target","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","jsonify","keys","reduce","result","key"],"sources":["Tool.ts"],"sourcesContent":["export const Tool = {\n sleep: (delay: number) =>\n new Promise((resolve) => setTimeout(resolve, delay)),\n\n formatDate(date: Date, fmt: string): string {\n fmt = fmt ? fmt : 'yyyy-MM-dd';\n var o: { [key: string]: number } = {\n 'M+': date.getMonth() + 1, //月份\n 'd+': date.getDate(), //日\n 'h+': date.getHours(), //小时\n 'm+': date.getMinutes(), //分\n 's+': date.getSeconds(), //秒\n 'q+': Math.floor((date.getMonth() + 3) / 3), //季度\n 'S': date.getMilliseconds(), //毫秒\n };\n\n // 获取年份\n if (/(y+)/i.test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (date.getFullYear() + '').substr(4 - RegExp.$1.length)\n );\n }\n\n for (var k in o) {\n if (new RegExp('(' + k + ')', 'i').test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (RegExp.$1.length === 1\n ? o[k]\n : ('00' + o[k]).substr(('' + o[k]).length)\n ).toString()\n );\n }\n }\n return fmt;\n },\n\n isPlainObject: (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n },\n\n _jsonify: (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(Tool._jsonify);\n return target;\n },\n\n jsonify: (target: any) =>\n Tool.isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: Tool._jsonify(target[key]),\n }),\n {}\n )\n : Tool._jsonify(target),\n};\n"],"mappings":"AAAA,OAAO,MAAMA,IAAI,GAAG;EAClBC,KAAK,EAAGC,KAAa,IACnB,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAEF,KAAK,CAAC,CAAC;EAEtDI,UAAUA,CAACC,IAAU,EAAEC,GAAW,EAAU;IAC1CA,GAAG,GAAGA,GAAG,GAAGA,GAAG,GAAG,YAAY;IAC9B,IAAIC,CAA4B,GAAG;MACjC,IAAI,EAAEF,IAAI,CAACG,QAAQ,CAAC,CAAC,GAAG,CAAC;MAAE;MAC3B,IAAI,EAAEH,IAAI,CAACI,OAAO,CAAC,CAAC;MAAE;MACtB,IAAI,EAAEJ,IAAI,CAACK,QAAQ,CAAC,CAAC;MAAE;MACvB,IAAI,EAAEL,IAAI,CAACM,UAAU,CAAC,CAAC;MAAE;MACzB,IAAI,EAAEN,IAAI,CAACO,UAAU,CAAC,CAAC;MAAE;MACzB,IAAI,EAAEC,IAAI,CAACC,KAAK,CAAC,CAACT,IAAI,CAACG,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;MAAE;MAC7C,GAAG,EAAEH,IAAI,CAACU,eAAe,CAAC,CAAC,CAAE;IAC/B,CAAC;;IAED;IACA,IAAI,OAAO,CAACC,IAAI,CAACV,GAAG,CAAC,EAAE;MACrBA,GAAG,GAAGA,GAAG,CAACW,OAAO,CACfC,MAAM,CAACC,EAAE,EACT,CAACd,IAAI,CAACe,WAAW,CAAC,CAAC,GAAG,EAAE,EAAEC,MAAM,CAAC,CAAC,GAAGH,MAAM,CAACC,EAAE,CAACG,MAAM,CACvD,CAAC;IACH;IAEA,KAAK,IAAIC,CAAC,IAAIhB,CAAC,EAAE;MACf,IAAI,IAAIW,MAAM,CAAC,GAAG,GAAGK,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAACP,IAAI,CAACV,GAAG,CAAC,EAAE;QAC5CA,GAAG,GAAGA,GAAG,CAACW,OAAO,CACfC,MAAM,CAACC,EAAE,EACT,CAACD,MAAM,CAACC,EAAE,CAACG,MAAM,KAAK,CAAC,GACnBf,CAAC,CAACgB,CAAC,CAAC,GACJ,CAAC,IAAI,GAAGhB,CAAC,CAACgB,CAAC,CAAC,EAAEF,MAAM,CAAC,CAAC,EAAE,GAAGd,CAAC,CAACgB,CAAC,CAAC,EAAED,MAAM,CAAC,EAC1CE,QAAQ,CAAC,CACb,CAAC;MACH;IACF;IACA,OAAOlB,GAAG;EACZ,CAAC;EAEDmB,aAAa,EAAGC,MAAW,IAAK;IAC9B,OACEA,MAAM,IACNA,MAAM,CAACF,QAAQ,CAAC,CAAC,KAAK,iBAAiB,IACvCG,MAAM,CAACC,cAAc,CAACF,MAAM,CAAC,KAAKC,MAAM,CAACE,SAAS;EAEtD,CAAC;EAEDC,QAAQ,EAAGJ,MAAW,IAAU;IAC9B,IAAIA,MAAM,IAAI,OAAOA,MAAM,CAACK,MAAM,KAAK,UAAU,EAAE,OAAOL,MAAM,CAACK,MAAM,CAAC,CAAC;IACzE;IACA,IAAIC,KAAK,CAACC,OAAO,CAACP,MAAM,CAAC,EAAE,OAAOA,MAAM,CAACQ,GAAG,CAACpC,IAAI,CAACgC,QAAQ,CAAC;IAC3D,OAAOJ,MAAM;EACf,CAAC;EAEDS,OAAO,EAAGT,MAAW,IACnB5B,IAAI,CAAC2B,aAAa,CAACC,MAAM,CAAC,GACtBC,MAAM,CAACS,IAAI,CAACV,MAAM,CAAC,CAACW,MAAM,CACxB,CAACC,MAAM,EAAEC,GAAG,MAAM;IAChB,GAAGD,MAAM;IACT,CAACC,GAAG,GAAGzC,IAAI,CAACgC,QAAQ,CAACJ,MAAM,CAACa,GAAG,CAAC;EAClC,CAAC,CAAC,EACF,CAAC,CACH,CAAC,GACDzC,IAAI,CAACgC,QAAQ,CAACJ,MAAM;AAC5B,CAAC"}
1
+ {"version":3,"names":["useState","Toast","_isPlainObject","target","toString","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","Tool","sleep","delay","Promise","resolve","setTimeout","formatDate","date","fmt","o","getMonth","getDate","getHours","getMinutes","getSeconds","Math","floor","getMilliseconds","test","replace","RegExp","$1","getFullYear","substr","length","k","jsonify","keys","reduce","result","key","isChinese","value","isRemoteURL","str","startsWith","get_url_extension","url","_url$split$","split","pop","trim","generateObjectId","timestamp","Date","getTime","random","toLowerCase","humanFileSize","bytes","si","arguments","undefined","dp","thresh","abs","units","u","r","round","toFixed","useForceUpdate","setValue","showToast","toast","showWithGravity","SHORT","CENTER"],"sources":["Tool.ts"],"sourcesContent":["import { useState } from 'react';\nimport Toast from 'react-native-simple-toast';\n\nconst _isPlainObject = (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n};\n\nconst _jsonify = (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(_jsonify);\n return target;\n};\n\nexport const Tool = {\n sleep: (delay: number) =>\n new Promise((resolve) => setTimeout(resolve, delay)),\n\n formatDate(date: Date, fmt: string): string {\n fmt = fmt ? fmt : 'yyyy-MM-dd';\n var o: { [key: string]: number } = {\n 'M+': date.getMonth() + 1, //月份\n 'd+': date.getDate(), //日\n 'h+': date.getHours(), //小时\n 'm+': date.getMinutes(), //分\n 's+': date.getSeconds(), //秒\n 'q+': Math.floor((date.getMonth() + 3) / 3), //季度\n 'S': date.getMilliseconds(), //毫秒\n };\n\n // 获取年份\n if (/(y+)/i.test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (date.getFullYear() + '').substr(4 - RegExp.$1.length)\n );\n }\n\n for (var k in o) {\n if (new RegExp('(' + k + ')', 'i').test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (RegExp.$1.length === 1\n ? o[k]\n : ('00' + o[k]).substr(('' + o[k]).length)\n ).toString()\n );\n }\n }\n return fmt;\n },\n\n jsonify: (target: any) =>\n _isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: _jsonify(target[key]),\n }),\n {}\n )\n : _jsonify(target),\n\n isChinese: (value: string) => {\n return /[\\u4E00-\\u9FA5]+/g.test(value);\n },\n\n isRemoteURL: (str: string) => {\n return str.startsWith('http');\n },\n\n get_url_extension: (url: string) => {\n return url.split(/[#?]/)[0]?.split('.')?.pop()?.trim();\n },\n\n generateObjectId: () => {\n var timestamp = ((new Date().getTime() / 1000) | 0).toString(16); // eslint-disable-line no-bitwise\n return (\n timestamp +\n 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {\n return ((Math.random() * 16) | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise\n })\n );\n },\n\n /**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\n humanFileSize: (bytes: number, si = false, dp = 1) => {\n const thresh = si ? 1000 : 1024;\n\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n\n const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let u = -1;\n const r = 10 ** dp;\n\n do {\n bytes /= thresh;\n ++u;\n } while (\n Math.round(Math.abs(bytes) * r) / r >= thresh &&\n u < units.length - 1\n );\n\n return bytes.toFixed(dp) + ' ' + units[u];\n },\n\n useForceUpdate: () => {\n const [, setValue] = useState(0);\n return () => setValue((value) => value + 1);\n },\n\n showToast: (toast: string) => {\n Toast.showWithGravity(toast, Toast.SHORT, Toast.CENTER);\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 {};
@@ -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;
@@ -1,7 +1,22 @@
1
1
  export declare const Tool: {
2
2
  sleep: (delay: number) => Promise<unknown>;
3
3
  formatDate(date: Date, fmt: string): string;
4
- isPlainObject: (target: any) => any;
5
- _jsonify: (target: any) => any;
6
4
  jsonify: (target: any) => any;
5
+ isChinese: (value: string) => boolean;
6
+ isRemoteURL: (str: string) => boolean;
7
+ get_url_extension: (url: string) => string | undefined;
8
+ generateObjectId: () => string;
9
+ /**
10
+ * Format bytes as human-readable text.
11
+ *
12
+ * @param bytes Number of bytes.
13
+ * @param si True to use metric (SI) units, aka powers of 1000. False to use
14
+ * binary (IEC), aka powers of 1024.
15
+ * @param dp Number of decimal places to display.
16
+ *
17
+ * @return Formatted string.
18
+ */
19
+ humanFileSize: (bytes: number, si?: boolean, dp?: number) => string;
20
+ useForceUpdate: () => () => void;
21
+ showToast: (toast: string) => void;
7
22
  };
@@ -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.20",
3
+ "version": "0.1.22",
4
4
  "description": "My Toolkit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -68,7 +68,8 @@
68
68
  "@react-native-community/async-storage": "^1.12.0",
69
69
  "i18n-js": "^4.2.2",
70
70
  "react-native-wechat-lib": "^1.1.26",
71
- "react-native-purchases": "5.6.0"
71
+ "react-native-purchases": "5.6.0",
72
+ "react-native-simple-toast": "^1.1.3"
72
73
  },
73
74
  "peerDependencies": {
74
75
  "react": "*",
@@ -80,7 +81,8 @@
80
81
  "@react-native-community/async-storage": "*",
81
82
  "i18n-js": "*",
82
83
  "react-native-wechat-lib": "*",
83
- "react-native-purchases": "*"
84
+ "react-native-purchases": "*",
85
+ "react-native-simple-toast": "*"
84
86
  },
85
87
  "jest": {
86
88
  "preset": "react-native",
@@ -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
+ };
@@ -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
 
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/Tool.ts CHANGED
@@ -1,3 +1,21 @@
1
+ import { useState } from 'react';
2
+ import Toast from 'react-native-simple-toast';
3
+
4
+ const _isPlainObject = (target: any) => {
5
+ return (
6
+ target &&
7
+ target.toString() === '[object Object]' &&
8
+ Object.getPrototypeOf(target) === Object.prototype
9
+ );
10
+ };
11
+
12
+ const _jsonify = (target: any): any => {
13
+ if (target && typeof target.toJSON === 'function') return target.toJSON();
14
+ // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值
15
+ if (Array.isArray(target)) return target.map(_jsonify);
16
+ return target;
17
+ };
18
+
1
19
  export const Tool = {
2
20
  sleep: (delay: number) =>
3
21
  new Promise((resolve) => setTimeout(resolve, delay)),
@@ -36,29 +54,77 @@ export const Tool = {
36
54
  return fmt;
37
55
  },
38
56
 
39
- isPlainObject: (target: any) => {
40
- return (
41
- target &&
42
- target.toString() === '[object Object]' &&
43
- Object.getPrototypeOf(target) === Object.prototype
44
- );
45
- },
46
-
47
- _jsonify: (target: any): any => {
48
- if (target && typeof target.toJSON === 'function') return target.toJSON();
49
- // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值
50
- if (Array.isArray(target)) return target.map(Tool._jsonify);
51
- return target;
52
- },
53
-
54
57
  jsonify: (target: any) =>
55
- Tool.isPlainObject(target)
58
+ _isPlainObject(target)
56
59
  ? Object.keys(target).reduce(
57
60
  (result, key) => ({
58
61
  ...result,
59
- [key]: Tool._jsonify(target[key]),
62
+ [key]: _jsonify(target[key]),
60
63
  }),
61
64
  {}
62
65
  )
63
- : Tool._jsonify(target),
66
+ : _jsonify(target),
67
+
68
+ isChinese: (value: string) => {
69
+ return /[\u4E00-\u9FA5]+/g.test(value);
70
+ },
71
+
72
+ isRemoteURL: (str: string) => {
73
+ return str.startsWith('http');
74
+ },
75
+
76
+ get_url_extension: (url: string) => {
77
+ return url.split(/[#?]/)[0]?.split('.')?.pop()?.trim();
78
+ },
79
+
80
+ generateObjectId: () => {
81
+ var timestamp = ((new Date().getTime() / 1000) | 0).toString(16); // eslint-disable-line no-bitwise
82
+ return (
83
+ timestamp +
84
+ 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {
85
+ return ((Math.random() * 16) | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise
86
+ })
87
+ );
88
+ },
89
+
90
+ /**
91
+ * Format bytes as human-readable text.
92
+ *
93
+ * @param bytes Number of bytes.
94
+ * @param si True to use metric (SI) units, aka powers of 1000. False to use
95
+ * binary (IEC), aka powers of 1024.
96
+ * @param dp Number of decimal places to display.
97
+ *
98
+ * @return Formatted string.
99
+ */
100
+ humanFileSize: (bytes: number, si = false, dp = 1) => {
101
+ const thresh = si ? 1000 : 1024;
102
+
103
+ if (Math.abs(bytes) < thresh) {
104
+ return bytes + ' B';
105
+ }
106
+
107
+ const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
108
+ let u = -1;
109
+ const r = 10 ** dp;
110
+
111
+ do {
112
+ bytes /= thresh;
113
+ ++u;
114
+ } while (
115
+ Math.round(Math.abs(bytes) * r) / r >= thresh &&
116
+ u < units.length - 1
117
+ );
118
+
119
+ return bytes.toFixed(dp) + ' ' + units[u];
120
+ },
121
+
122
+ useForceUpdate: () => {
123
+ const [, setValue] = useState(0);
124
+ return () => setValue((value) => value + 1);
125
+ },
126
+
127
+ showToast: (toast: string) => {
128
+ Toast.showWithGravity(toast, Toast.SHORT, Toast.CENTER);
129
+ },
64
130
  };
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';