@norcy/react-native-toolkit 0.1.137 → 0.1.139

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.
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","LoginManager","Notification","VersionManager","VipAndroidManager","EventEmitter","require","eventEmitter","MyItems","AV","_filterByVersion","items","ret","item","isValidVersion","get","push","_updateKeyValues","value","trim","handleVersionInfo","init","latestAppVersion","ConfigDataModel","OS","latestBundleVersion","isDataReady","isNetwordDataReady","_handleResponse","OnlineItems","console","log","setOfferings","emitChange","defaultValues","addListener","_ref","isAuto","user","error","fetch","query","Query","equalTo","find","then","catch","e","key","emit","addListenerOnce","callback","once","on","shouldEnableByRate","enable","rate","_LoginManager$current","_LoginManager$current2","r","lastChar","currentUser","AVUser","slice","indexOf","toLowerCase"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { LoginManager, LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { VersionManager } from './VersionManager';\nimport { VipAndroidManager } from './VipAndroidManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n for (const item of items) {\n if (\n !VersionManager.isValidVersion(item.get('minVer'), item.get('maxVer'))\n ) {\n continue;\n }\n ret.push(item);\n }\n return ret;\n};\n\nconst _updateKeyValues = (items: Object[]) => {\n for (const item of items) {\n let value = item.get('value');\n if (typeof value === 'string') {\n // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{\n value = value.trim();\n }\n MyItems[item.get('key')] = value;\n }\n};\n\nconst handleVersionInfo = () => {\n VersionManager.init({\n latestAppVersion: ConfigDataModel.get(\n Platform.OS === 'android' ? 'aov' : 'ov'\n ),\n latestBundleVersion: ConfigDataModel.get(\n Platform.OS === 'android' ? 'abov' : 'bov'\n ),\n });\n};\n\nlet isDataReady = false;\nlet isNetwordDataReady = false;\n\nconst _handleResponse = (OnlineItems: Object[]) => {\n if (!isNetwordDataReady) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 处理完毕');\n isDataReady = true;\n VipAndroidManager.setOfferings(ConfigDataModel.get('vip_android_offerings'));\n ConfigDataModel.emitChange();\n};\n\n// ConfigDataModel 的 Config 是支持后台配置多条同一个 Key 的,按版本区分\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n\n Notification.addListener(\n 'onLogin',\n ({ isAuto, user, error }: LoginResultDataType) => {\n if (!isAuto && user && !error) {\n isDataReady = false;\n isNetwordDataReady = false;\n ConfigDataModel.fetch();\n }\n }\n );\n\n // 防止 Config 太慢,而 Vip 页面却已经打开导致无商品的问题\n VipAndroidManager.setOfferings(\n ConfigDataModel.get('vip_android_offerings')\n );\n ConfigDataModel.fetch();\n },\n\n fetch: () => {\n // 确保可重入,但如果网络一直出错的话,每次调用都会一直发\n if (isNetwordDataReady) {\n return;\n }\n\n const query = new AV.Query('Configs');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n query\n .find()\n .then((items: Object[]) => {\n console.log('Config 抓取完毕');\n isNetwordDataReady = true;\n _handleResponse(items);\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n get: (key: string) => {\n return MyItems[key];\n },\n\n emitChange: () => {\n eventEmitter.emit('change');\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n\n addListener: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.on('change', callback);\n },\n\n shouldEnableByRate: (enable?: boolean, rate?: number) => {\n if (!enable) {\n return false;\n }\n // rate 不传,默认为全量\n const r = rate ?? 1;\n if (r <= 0) {\n return false;\n }\n // ID 最后一位是 16 进制(0-f),未登录默认为全量\n const lastChar =\n LoginManager.currentUser()?.AVUser?.get('objectId')?.slice(-1) ?? '0';\n return '0123456789abcdef'.indexOf(lastChar.toLowerCase()) < r * 16;\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","LoginManager","Notification","VersionManager","VipAndroidManager","EventEmitter","require","eventEmitter","MyItems","AV","_filterByVersion","items","ret","item","isValidVersion","get","push","_updateKeyValues","value","trim","handleVersionInfo","init","latestAppVersion","ConfigDataModel","OS","latestBundleVersion","isDataReady","isNetwordDataReady","_handleResponse","OnlineItems","console","log","setOfferings","emitChange","defaultValues","addListener","_ref","isAuto","fetch","query","Query","equalTo","find","then","catch","e","error","key","emit","addListenerOnce","callback","once","on","shouldEnableByRate","enable","rate","_LoginManager$current","_LoginManager$current2","r","lastChar","currentUser","AVUser","slice","indexOf","toLowerCase"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { LoginManager, LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { VersionManager } from './VersionManager';\nimport { VipAndroidManager } from './VipAndroidManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n for (const item of items) {\n if (\n !VersionManager.isValidVersion(item.get('minVer'), item.get('maxVer'))\n ) {\n continue;\n }\n ret.push(item);\n }\n return ret;\n};\n\nconst _updateKeyValues = (items: Object[]) => {\n for (const item of items) {\n let value = item.get('value');\n if (typeof value === 'string') {\n // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{\n value = value.trim();\n }\n MyItems[item.get('key')] = value;\n }\n};\n\nconst handleVersionInfo = () => {\n VersionManager.init({\n latestAppVersion: ConfigDataModel.get(\n Platform.OS === 'android' ? 'aov' : 'ov'\n ),\n latestBundleVersion: ConfigDataModel.get(\n Platform.OS === 'android' ? 'abov' : 'bov'\n ),\n });\n};\n\nlet isDataReady = false;\nlet isNetwordDataReady = false;\n\nconst _handleResponse = (OnlineItems: Object[]) => {\n if (!isNetwordDataReady) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 处理完毕');\n isDataReady = true;\n VipAndroidManager.setOfferings(ConfigDataModel.get('vip_android_offerings'));\n ConfigDataModel.emitChange();\n};\n\n// ConfigDataModel 的 Config 是支持后台配置多条同一个 Key 的,按版本区分\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n\n Notification.addListener(\n 'onLoginSuccess',\n ({ isAuto }: LoginSuccessResultType) => {\n if (!isAuto) {\n isDataReady = false;\n isNetwordDataReady = false;\n ConfigDataModel.fetch();\n }\n }\n );\n\n // 防止 Config 太慢,而 Vip 页面却已经打开导致无商品的问题\n VipAndroidManager.setOfferings(\n ConfigDataModel.get('vip_android_offerings')\n );\n ConfigDataModel.fetch();\n },\n\n fetch: () => {\n // 确保可重入,但如果网络一直出错的话,每次调用都会一直发\n if (isNetwordDataReady) {\n return;\n }\n\n const query = new AV.Query('Configs');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n query\n .find()\n .then((items: Object[]) => {\n console.log('Config 抓取完毕');\n isNetwordDataReady = true;\n _handleResponse(items);\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n get: (key: string) => {\n return MyItems[key];\n },\n\n emitChange: () => {\n eventEmitter.emit('change');\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n\n addListener: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.on('change', callback);\n },\n\n shouldEnableByRate: (enable?: boolean, rate?: number) => {\n if (!enable) {\n return false;\n }\n // rate 不传,默认为全量\n const r = rate ?? 1;\n if (r <= 0) {\n return false;\n }\n // ID 最后一位是 16 进制(0-f),未登录默认为全量\n const lastChar =\n LoginManager.currentUser()?.AVUser?.get('objectId')?.slice(-1) ?? '0';\n return '0123456789abcdef'.indexOf(lastChar.toLowerCase()) < r * 16;\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
@@ -24,16 +24,23 @@ const onLoginFinish = _ref => {
24
24
  error,
25
25
  code
26
26
  } = _ref;
27
- const data = {
28
- isAuto,
29
- user,
30
- error,
31
- code
32
- };
33
27
  if (user) {
34
28
  PrefData.setValue(BuildInPrefs.LastLoginType, user.type);
29
+ const data = {
30
+ isAuto,
31
+ user
32
+ };
33
+ console.log('onLoginSuccess', data);
34
+ Notification.postNotification('onLoginSuccess', data);
35
+ } else {
36
+ const data = {
37
+ isAuto,
38
+ error,
39
+ code
40
+ };
41
+ console.log('onLoginFail', data);
42
+ Notification.postNotification('onLoginFail', data);
35
43
  }
36
- Notification.postNotification('onLogin', data);
37
44
  };
38
45
  const doLeanCloudLogin = async (authData, userData, callback) => {
39
46
  console.log('Lean Cloud 开始登录', userData);
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","getUniqueIdSync","AppleLoginUtil","Notification","BuildInPrefs","PrefData","ToolkitConfig","WeChatLoginUtil","LoginState","LoginType","AV","require","CURRENT_USER","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","RegisterInThisDevice","error2","LoginManager","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","qrcodeCallback","cuurentUser","__DEV__","_ref2","identityToken","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","AUTHORIZED","_ref4","loginUser","error3","doLogin","WeiXinId","WeiXinSecret","_ref5","unionid","_ref6","LoginTypeWeChatScan","doLoginByScan","_ref7","_ref8","uniqueId","_ref9","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","isRegisterInThisDevice","fetchWeChatAvatar","_ref10","getRegisterDays","_LoginManager$current2","createTime","getCreatedAt","diff","Date","getTime","diffDay","Math","max","ceil"],"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 { ToolkitConfig } from './Tool';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\ntype FetchImageFunctionType = ({ headimgurl }: { headimgurl: string }) => void;\nexport type LoginResultDataType = {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: string;\n};\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\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}: LoginResultDataType) => {\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.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(BuildInPrefs.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 // 自动根据已有的 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 qrcodeCallback?: (qrcode: string) => void\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 ToolkitConfig.WeiXinId,\n ToolkitConfig.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.LoginTypeWeChatScan) {\n WeChatLoginUtil.doLoginByScan(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n qrcodeCallback!,\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: any[],\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: any, 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 isRegisterInThisDevice: () => {\n return PrefData.getValue(BuildInPrefs.RegisterInThisDevice);\n },\n\n fetchWeChatAvatar: (callback: FetchImageFunctionType) => {\n WeChatLoginUtil.doLogin(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n\n // 已注册天数\n getRegisterDays: () => {\n if (!LoginManager.isLogin()) {\n return 0;\n }\n const createTime = LoginManager.currentUser()?.AVUser.getCreatedAt();\n if (createTime) {\n const diff = new Date().getTime() - createTime.getTime();\n const diffDay = Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n return diffDay;\n }\n return 0;\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","getUniqueIdSync","AppleLoginUtil","Notification","BuildInPrefs","PrefData","ToolkitConfig","WeChatLoginUtil","LoginState","LoginType","AV","require","CURRENT_USER","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","setValue","LastLoginType","data","console","log","postNotification","doLeanCloudLogin","authData","userData","callback","loginType","loginTypeNum","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","OS","isNew","RegisterInThisDevice","error2","LoginManager","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","qrcodeCallback","cuurentUser","__DEV__","_ref2","identityToken","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","AUTHORIZED","_ref4","loginUser","error3","doLogin","WeiXinId","WeiXinSecret","_ref5","unionid","_ref6","LoginTypeWeChatScan","doLoginByScan","_ref7","_ref8","uniqueId","_ref9","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","isRegisterInThisDevice","fetchWeChatAvatar","_ref10","getRegisterDays","_LoginManager$current2","createTime","getCreatedAt","diff","Date","getTime","diffDay","Math","max","ceil"],"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 { ToolkitConfig } from './Tool';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\ntype FetchImageFunctionType = ({ headimgurl }: { headimgurl: string }) => void;\nexport type LoginSuccessResultType = {\n isAuto?: boolean;\n user: UserType;\n};\nexport type LoginFailResulType = {\n isAuto?: boolean;\n error: string | object;\n code?: string;\n};\n\ntype LoginFinishParams = {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: string;\n};\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\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}: LoginFinishParams) => {\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n const data = { isAuto, user };\n console.log('onLoginSuccess', data);\n Notification.postNotification('onLoginSuccess', data);\n } else {\n const data = { isAuto, error, code };\n console.log('onLoginFail', data);\n Notification.postNotification('onLoginFail', data);\n }\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.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(BuildInPrefs.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 // 自动根据已有的 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 qrcodeCallback?: (qrcode: string) => void\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 ToolkitConfig.WeiXinId,\n ToolkitConfig.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.LoginTypeWeChatScan) {\n WeChatLoginUtil.doLoginByScan(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n qrcodeCallback!,\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: any[],\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: any, 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 isRegisterInThisDevice: () => {\n return PrefData.getValue(BuildInPrefs.RegisterInThisDevice);\n },\n\n fetchWeChatAvatar: (callback: FetchImageFunctionType) => {\n WeChatLoginUtil.doLogin(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n\n // 已注册天数\n getRegisterDays: () => {\n if (!LoginManager.isLogin()) {\n return 0;\n }\n const createTime = LoginManager.currentUser()?.AVUser.getCreatedAt();\n if (createTime) {\n const diff = new Date().getTime() - createTime.getTime();\n const diffDay = Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n return diffDay;\n }\n return 0;\n },\n};\n"],"mappings":"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"}
@@ -106,13 +106,11 @@ export const MessageModel = {
106
106
  _handleResponse(customFilter);
107
107
  }
108
108
  });
109
- Notification.addListener('onLogin', _ref => {
109
+ Notification.addListener('onLoginSuccess', _ref => {
110
110
  let {
111
- isAuto,
112
- user,
113
- error
111
+ isAuto
114
112
  } = _ref;
115
- if (!isAuto && user && !error) {
113
+ if (!isAuto) {
116
114
  isDataReady = false;
117
115
  isConfigStateReady = false;
118
116
  isNetwordDataReady = false;
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","ConfigDataModel","FrequenceManager","LoginManager","Notification","BuildInPrefs","PrefData","Tool","VersionManager","VipManager","AV","require","EventEmitter","eventEmitter","MyMessages","_filterByVersion","items","ret","item","isValidVersion","minVer","maxVer","push","_handleReadMessages","__DEV__","readMsgs","getValue","Messages","includes","objectId","isRead","_item$key","key","get","hasNewAppVer","updatedAt","Date","toString","length","freConfig","limit","gap","canRun","configValue","_getConfigValue","lastTimestamp","isDataReady","isConfigStateReady","isNetwordDataReady","OnlineItems","_handleResponse","customFilter","isDanger","map","jsonify","sort","a","b","dateA","getTime","dateB","console","log","MessageModel","emitChange","init","addListener","fetch","_ref","isAuto","user","error","_LoginManager$current","query","Query","equalTo","OS","isForeverVip","isVip","notEqualTo","userQuery","sizeEqualTo","userId","currentUser","AVUser","selectUserQuery","or","and","descending","find","then","catch","e","getUnreadMessages","filter","getAllMessages","removeMessage","message","index","findIndex","splice","readIndex","indexOf","setValue","reset","markMessageRead","markFinish","emit","slice","addListenerOnce","callback","once","on","removeListener"],"sources":["MessageModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager, LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VersionManager } from './VersionManager';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nexport interface Message {\n objectId: string;\n android: boolean;\n ios: boolean;\n title?: string;\n content?: string;\n maxVer?: string;\n minVer?: string;\n key?: string;\n updatedAt: string;\n valid: boolean;\n vipFilter?: number;\n isRead: boolean;\n users?: string[];\n limit?: number;\n gap?: number;\n url: string;\n actionTitle?: string;\n}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n if (!VersionManager.isValidVersion(item.minVer, item.maxVer)) {\n continue;\n }\n ret.push(item);\n }\n return ret;\n};\n\nconst _handleReadMessages = (items: Message[]): Message[] => {\n if (__DEV__) {\n // return items;\n }\n\n // 根据已读状态标为已读\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n for (const item of items) {\n if (readMsgs.includes(item.objectId)) {\n item.isRead = true;\n }\n }\n\n // 挑选需要强制未读\n for (const item of items) {\n if (!item.isRead) {\n continue;\n }\n if (item.key === 'changeLog') {\n // 强制升级弹窗\n // Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的\n if (\n ConfigDataModel.get('upgrade_alert') &&\n VersionManager.hasNewAppVer()\n ) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n // 如果是带 Key 的,那么会根据 limit 或 gap 再给一次标为未读的机会\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n } else {\n const configValue = FrequenceManager._getConfigValue(freConfig);\n if (configValue.lastTimestamp) {\n item.updatedAt = new Date(\n configValue.lastTimestamp * 1000\n ).toString();\n }\n }\n }\n }\n\n return items;\n};\n\nlet isDataReady = false;\nlet isConfigStateReady = false;\nlet isNetwordDataReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = (customFilter?: MessageFilter) => {\n if (!isConfigStateReady || !OnlineItems.length || !isNetwordDataReady) {\n return;\n }\n\n if (VersionManager.isDanger()) {\n return;\n }\n\n MyMessages = OnlineItems.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n if (customFilter) {\n MyMessages = customFilter(MyMessages);\n }\n\n MyMessages = _handleReadMessages(MyMessages);\n\n // 由于强制插入的未读消息更改了时间,因此需要重新排序\n MyMessages = MyMessages.sort((a: Message, b: Message) => {\n let dateA = new Date(a.updatedAt).getTime();\n let dateB = new Date(b.updatedAt).getTime();\n return dateB - dateA;\n });\n console.log('Message 处理完毕');\n isDataReady = true;\n MessageModel.emitChange();\n};\n\nexport type MessageFilter = (oldMessage: Message[]) => Message[];\n\nexport const MessageModel = {\n init: (customFilter?: MessageFilter) => {\n Notification.addListener('onVipRefresh', () => {\n MessageModel.fetch(customFilter);\n });\n\n ConfigDataModel.addListener(() => {\n if (!isConfigStateReady) {\n isConfigStateReady = true;\n _handleResponse(customFilter);\n }\n });\n\n Notification.addListener(\n 'onLogin',\n ({ isAuto, user, error }: LoginResultDataType) => {\n if (!isAuto && user && !error) {\n isDataReady = false;\n isConfigStateReady = false;\n isNetwordDataReady = false;\n OnlineItems = [];\n MessageModel.fetch(customFilter);\n }\n }\n );\n },\n\n fetch: (customFilter?: MessageFilter) => {\n // 确保可重入,但如果网络一直出错的话,每次调用都会一直发\n if (isNetwordDataReady) {\n return;\n }\n\n let query = new AV.Query('Message');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n\n if (VipManager.isForeverVip()) {\n query.equalTo('vipFilter', 0);\n } else if (VipManager.isVip()) {\n // 这里如果后续增加枚举,就会有问题\n query.notEqualTo('vipFilter', 1);\n }\n\n let userQuery = new AV.Query('Message').sizeEqualTo('users', 0);\n const userId = LoginManager.currentUser()?.AVUser.get('objectId');\n if (userId) {\n const selectUserQuery = new AV.Query('Message').equalTo('users', userId);\n userQuery = AV.Query.or(userQuery, selectUserQuery);\n }\n query = AV.Query.and(query, userQuery);\n\n query\n .descending('updatedAt')\n .find()\n .then(async (items: Object[]) => {\n console.log('Message 抓取完毕');\n isNetwordDataReady = true;\n OnlineItems = items;\n _handleResponse(customFilter);\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getUnreadMessages: (): Message[] => {\n return MyMessages.filter((item) => !item.isRead);\n },\n\n getAllMessages: (): Message[] => {\n return MyMessages;\n },\n\n removeMessage: async (message: Message) => {\n if (!message.objectId) {\n return;\n }\n\n // 从内存中移除\n const index = MyMessages.findIndex(\n (item) => item.objectId === message.objectId\n );\n if (index !== -1) {\n MyMessages.splice(index, 1);\n }\n\n // 从已读状态中移除\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n const readIndex = readMsgs.indexOf(message.objectId);\n if (readIndex !== -1) {\n readMsgs.splice(readIndex, 1);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n }\n\n // 如果消息有 key,也需要清理频率管理器的状态\n if (message.key) {\n const freConfig: FreConfigType = {\n key: message.key,\n limit: message.limit,\n gap: message.gap,\n };\n FrequenceManager.reset(freConfig);\n }\n\n MessageModel.emitChange();\n },\n\n markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\n\n if (message.key) {\n const freConfig: FreConfigType = {\n key: message.key,\n limit: message.limit,\n gap: message.gap,\n };\n // 能被展示出来的 message 一定是符合 FrequenceManager.canRun 的\n FrequenceManager.markFinish(freConfig);\n }\n\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n readMsgs.push(message.objectId);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n MessageModel.emitChange();\n },\n\n emitChange: () => {\n eventEmitter.emit('change', MyMessages.slice());\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n\n addListener: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return callback;\n }\n eventEmitter.on('change', callback);\n return callback;\n },\n\n removeListener: (callback: Function) => {\n eventEmitter.removeListener('change', callback);\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","ConfigDataModel","FrequenceManager","LoginManager","Notification","BuildInPrefs","PrefData","Tool","VersionManager","VipManager","AV","require","EventEmitter","eventEmitter","MyMessages","_filterByVersion","items","ret","item","isValidVersion","minVer","maxVer","push","_handleReadMessages","__DEV__","readMsgs","getValue","Messages","includes","objectId","isRead","_item$key","key","get","hasNewAppVer","updatedAt","Date","toString","length","freConfig","limit","gap","canRun","configValue","_getConfigValue","lastTimestamp","isDataReady","isConfigStateReady","isNetwordDataReady","OnlineItems","_handleResponse","customFilter","isDanger","map","jsonify","sort","a","b","dateA","getTime","dateB","console","log","MessageModel","emitChange","init","addListener","fetch","_ref","isAuto","_LoginManager$current","query","Query","equalTo","OS","isForeverVip","isVip","notEqualTo","userQuery","sizeEqualTo","userId","currentUser","AVUser","selectUserQuery","or","and","descending","find","then","catch","e","error","getUnreadMessages","filter","getAllMessages","removeMessage","message","index","findIndex","splice","readIndex","indexOf","setValue","reset","markMessageRead","markFinish","emit","slice","addListenerOnce","callback","once","on","removeListener"],"sources":["MessageModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager, LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VersionManager } from './VersionManager';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nexport interface Message {\n objectId: string;\n android: boolean;\n ios: boolean;\n title?: string;\n content?: string;\n maxVer?: string;\n minVer?: string;\n key?: string;\n updatedAt: string;\n valid: boolean;\n vipFilter?: number;\n isRead: boolean;\n users?: string[];\n limit?: number;\n gap?: number;\n url: string;\n actionTitle?: string;\n}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n if (!VersionManager.isValidVersion(item.minVer, item.maxVer)) {\n continue;\n }\n ret.push(item);\n }\n return ret;\n};\n\nconst _handleReadMessages = (items: Message[]): Message[] => {\n if (__DEV__) {\n // return items;\n }\n\n // 根据已读状态标为已读\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n for (const item of items) {\n if (readMsgs.includes(item.objectId)) {\n item.isRead = true;\n }\n }\n\n // 挑选需要强制未读\n for (const item of items) {\n if (!item.isRead) {\n continue;\n }\n if (item.key === 'changeLog') {\n // 强制升级弹窗\n // Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的\n if (\n ConfigDataModel.get('upgrade_alert') &&\n VersionManager.hasNewAppVer()\n ) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n // 如果是带 Key 的,那么会根据 limit 或 gap 再给一次标为未读的机会\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n } else {\n const configValue = FrequenceManager._getConfigValue(freConfig);\n if (configValue.lastTimestamp) {\n item.updatedAt = new Date(\n configValue.lastTimestamp * 1000\n ).toString();\n }\n }\n }\n }\n\n return items;\n};\n\nlet isDataReady = false;\nlet isConfigStateReady = false;\nlet isNetwordDataReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = (customFilter?: MessageFilter) => {\n if (!isConfigStateReady || !OnlineItems.length || !isNetwordDataReady) {\n return;\n }\n\n if (VersionManager.isDanger()) {\n return;\n }\n\n MyMessages = OnlineItems.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n if (customFilter) {\n MyMessages = customFilter(MyMessages);\n }\n\n MyMessages = _handleReadMessages(MyMessages);\n\n // 由于强制插入的未读消息更改了时间,因此需要重新排序\n MyMessages = MyMessages.sort((a: Message, b: Message) => {\n let dateA = new Date(a.updatedAt).getTime();\n let dateB = new Date(b.updatedAt).getTime();\n return dateB - dateA;\n });\n console.log('Message 处理完毕');\n isDataReady = true;\n MessageModel.emitChange();\n};\n\nexport type MessageFilter = (oldMessage: Message[]) => Message[];\n\nexport const MessageModel = {\n init: (customFilter?: MessageFilter) => {\n Notification.addListener('onVipRefresh', () => {\n MessageModel.fetch(customFilter);\n });\n\n ConfigDataModel.addListener(() => {\n if (!isConfigStateReady) {\n isConfigStateReady = true;\n _handleResponse(customFilter);\n }\n });\n\n Notification.addListener(\n 'onLoginSuccess',\n ({ isAuto }: LoginSuccessResultType) => {\n if (!isAuto) {\n isDataReady = false;\n isConfigStateReady = false;\n isNetwordDataReady = false;\n OnlineItems = [];\n MessageModel.fetch(customFilter);\n }\n }\n );\n },\n\n fetch: (customFilter?: MessageFilter) => {\n // 确保可重入,但如果网络一直出错的话,每次调用都会一直发\n if (isNetwordDataReady) {\n return;\n }\n\n let query = new AV.Query('Message');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n\n if (VipManager.isForeverVip()) {\n query.equalTo('vipFilter', 0);\n } else if (VipManager.isVip()) {\n // 这里如果后续增加枚举,就会有问题\n query.notEqualTo('vipFilter', 1);\n }\n\n let userQuery = new AV.Query('Message').sizeEqualTo('users', 0);\n const userId = LoginManager.currentUser()?.AVUser.get('objectId');\n if (userId) {\n const selectUserQuery = new AV.Query('Message').equalTo('users', userId);\n userQuery = AV.Query.or(userQuery, selectUserQuery);\n }\n query = AV.Query.and(query, userQuery);\n\n query\n .descending('updatedAt')\n .find()\n .then(async (items: Object[]) => {\n console.log('Message 抓取完毕');\n isNetwordDataReady = true;\n OnlineItems = items;\n _handleResponse(customFilter);\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getUnreadMessages: (): Message[] => {\n return MyMessages.filter((item) => !item.isRead);\n },\n\n getAllMessages: (): Message[] => {\n return MyMessages;\n },\n\n removeMessage: async (message: Message) => {\n if (!message.objectId) {\n return;\n }\n\n // 从内存中移除\n const index = MyMessages.findIndex(\n (item) => item.objectId === message.objectId\n );\n if (index !== -1) {\n MyMessages.splice(index, 1);\n }\n\n // 从已读状态中移除\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n const readIndex = readMsgs.indexOf(message.objectId);\n if (readIndex !== -1) {\n readMsgs.splice(readIndex, 1);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n }\n\n // 如果消息有 key,也需要清理频率管理器的状态\n if (message.key) {\n const freConfig: FreConfigType = {\n key: message.key,\n limit: message.limit,\n gap: message.gap,\n };\n FrequenceManager.reset(freConfig);\n }\n\n MessageModel.emitChange();\n },\n\n markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\n\n if (message.key) {\n const freConfig: FreConfigType = {\n key: message.key,\n limit: message.limit,\n gap: message.gap,\n };\n // 能被展示出来的 message 一定是符合 FrequenceManager.canRun 的\n FrequenceManager.markFinish(freConfig);\n }\n\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n readMsgs.push(message.objectId);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n MessageModel.emitChange();\n },\n\n emitChange: () => {\n eventEmitter.emit('change', MyMessages.slice());\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n\n addListener: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return callback;\n }\n eventEmitter.on('change', callback);\n return callback;\n },\n\n removeListener: (callback: Function) => {\n eventEmitter.removeListener('change', callback);\n },\n};\n"],"mappings":"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"}
@@ -48,17 +48,14 @@ export const ReportUtil = {
48
48
  if (!enable()) {
49
49
  return;
50
50
  }
51
- Notification.addListener('onLogin', _ref => {
51
+ Notification.addListener('onLoginSuccess', _ref => {
52
52
  let {
53
- error,
54
53
  user
55
54
  } = _ref;
56
- if (!error && user) {
57
- if (!__DEV__) {
58
- NativeModules.NCYReport.signIn(user.AVUser.get('objectId'));
59
- }
60
- ReportUtil.setCommonInfo('user', user.AVUser.get('objectId'));
55
+ if (!__DEV__) {
56
+ NativeModules.NCYReport.signIn(user.AVUser.get('objectId'));
61
57
  }
58
+ ReportUtil.setCommonInfo('user', user.AVUser.get('objectId'));
62
59
  });
63
60
  Notification.addListener('onLogout', () => {
64
61
  if (!__DEV__) {
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","getBrand","getDeviceId","getModel","getReadableVersion","Notification","CommonInfo","appVer","platform","OS","sysVer","Version","model","brand","device","enable","NCYReport","isValidReport","eventId","params","length","console","error","Array","isArray","key","convertToValidParams","ret","value","JSON","stringify","ReportUtil","init","addListener","_ref","user","__DEV__","signIn","AVUser","get","setCommonInfo","signOut","report","validParams","realParams","getCommonInfo","log","viewAppear","page","enterPage","viewDisappear","leavePage"],"sources":["ReportUtil.ts"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nimport {\n getBrand,\n getDeviceId,\n getModel,\n getReadableVersion,\n} from 'react-native-device-info';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\n\nexport interface ReportItemType {\n [key: string]: number | string;\n}\n\nconst CommonInfo: ReportItemType = {\n appVer: getReadableVersion(),\n platform: Platform.OS,\n sysVer: Platform.Version,\n model: getModel(),\n brand: getBrand(),\n device: getDeviceId(),\n};\n\nconst enable = () => {\n if (!NativeModules.NCYReport) {\n return false;\n }\n return true;\n};\n\nconst isValidReport = (eventId: string, params?: ReportItemType) => {\n if (typeof eventId !== 'string' || eventId?.length === 0) {\n console.error('Report 数据非法 1');\n return false;\n }\n\n if (params == null) {\n return true;\n }\n\n if (typeof params !== 'object' || Array.isArray(params)) {\n console.error('Report 数据非法 2');\n return false;\n }\n\n for (const key in params) {\n if (typeof key !== 'string') {\n console.error('Report 数据非法 3');\n return false;\n }\n }\n\n return true;\n};\n\nconst convertToValidParams = (params?: ReportItemType) => {\n const ret: ReportItemType = {};\n for (const key in params) {\n const value = JSON.stringify(params[key]);\n ret[key] = value;\n }\n return ret;\n};\n\nexport const ReportUtil = {\n init: () => {\n if (!enable()) {\n return;\n }\n\n Notification.addListener(\n 'onLogin',\n ({ error, user }: LoginResultDataType) => {\n if (!error && user) {\n if (!__DEV__) {\n NativeModules.NCYReport.signIn(user.AVUser.get('objectId'));\n }\n ReportUtil.setCommonInfo('user', user.AVUser.get('objectId'));\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n if (!__DEV__) {\n NativeModules.NCYReport.signOut();\n }\n ReportUtil.setCommonInfo('user', '');\n });\n },\n\n report: (eventId: string, params?: ReportItemType) => {\n if (!enable()) {\n return;\n }\n\n if (!isValidReport(eventId, params)) {\n return;\n }\n\n const validParams = convertToValidParams(params);\n const realParams = { ...validParams, ...ReportUtil.getCommonInfo() };\n console.log('[Report]', eventId, realParams);\n if (!__DEV__) {\n NativeModules.NCYReport.report(eventId, realParams);\n }\n },\n\n setCommonInfo: (key: string, value: string) => {\n CommonInfo[key] = value;\n },\n\n getCommonInfo: () => {\n return CommonInfo;\n },\n\n viewAppear: (page: string) => {\n if (!__DEV__) {\n console.log(page, 'viewWillAppear');\n }\n\n if (!enable()) {\n return;\n }\n\n if (!__DEV__) {\n NativeModules.NCYReport.enterPage(page);\n }\n },\n\n viewDisappear: (page: string) => {\n if (!__DEV__) {\n console.log(page, 'viewWillDisappear');\n }\n\n if (!enable()) {\n return;\n }\n\n if (!__DEV__) {\n NativeModules.NCYReport.leavePage(page);\n }\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["NativeModules","Platform","getBrand","getDeviceId","getModel","getReadableVersion","Notification","CommonInfo","appVer","platform","OS","sysVer","Version","model","brand","device","enable","NCYReport","isValidReport","eventId","params","length","console","error","Array","isArray","key","convertToValidParams","ret","value","JSON","stringify","ReportUtil","init","addListener","_ref","user","__DEV__","signIn","AVUser","get","setCommonInfo","signOut","report","validParams","realParams","getCommonInfo","log","viewAppear","page","enterPage","viewDisappear","leavePage"],"sources":["ReportUtil.ts"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nimport {\n getBrand,\n getDeviceId,\n getModel,\n getReadableVersion,\n} from 'react-native-device-info';\nimport { LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\n\nexport interface ReportItemType {\n [key: string]: number | string;\n}\n\nconst CommonInfo: ReportItemType = {\n appVer: getReadableVersion(),\n platform: Platform.OS,\n sysVer: Platform.Version,\n model: getModel(),\n brand: getBrand(),\n device: getDeviceId(),\n};\n\nconst enable = () => {\n if (!NativeModules.NCYReport) {\n return false;\n }\n return true;\n};\n\nconst isValidReport = (eventId: string, params?: ReportItemType) => {\n if (typeof eventId !== 'string' || eventId?.length === 0) {\n console.error('Report 数据非法 1');\n return false;\n }\n\n if (params == null) {\n return true;\n }\n\n if (typeof params !== 'object' || Array.isArray(params)) {\n console.error('Report 数据非法 2');\n return false;\n }\n\n for (const key in params) {\n if (typeof key !== 'string') {\n console.error('Report 数据非法 3');\n return false;\n }\n }\n\n return true;\n};\n\nconst convertToValidParams = (params?: ReportItemType) => {\n const ret: ReportItemType = {};\n for (const key in params) {\n const value = JSON.stringify(params[key]);\n ret[key] = value;\n }\n return ret;\n};\n\nexport const ReportUtil = {\n init: () => {\n if (!enable()) {\n return;\n }\n\n Notification.addListener(\n 'onLoginSuccess',\n ({ user }: LoginSuccessResultType) => {\n if (!__DEV__) {\n NativeModules.NCYReport.signIn(user.AVUser.get('objectId'));\n }\n ReportUtil.setCommonInfo('user', user.AVUser.get('objectId'));\n }\n );\n\n Notification.addListener('onLogout', () => {\n if (!__DEV__) {\n NativeModules.NCYReport.signOut();\n }\n ReportUtil.setCommonInfo('user', '');\n });\n },\n\n report: (eventId: string, params?: ReportItemType) => {\n if (!enable()) {\n return;\n }\n\n if (!isValidReport(eventId, params)) {\n return;\n }\n\n const validParams = convertToValidParams(params);\n const realParams = { ...validParams, ...ReportUtil.getCommonInfo() };\n console.log('[Report]', eventId, realParams);\n if (!__DEV__) {\n NativeModules.NCYReport.report(eventId, realParams);\n }\n },\n\n setCommonInfo: (key: string, value: string) => {\n CommonInfo[key] = value;\n },\n\n getCommonInfo: () => {\n return CommonInfo;\n },\n\n viewAppear: (page: string) => {\n if (!__DEV__) {\n console.log(page, 'viewWillAppear');\n }\n\n if (!enable()) {\n return;\n }\n\n if (!__DEV__) {\n NativeModules.NCYReport.enterPage(page);\n }\n },\n\n viewDisappear: (page: string) => {\n if (!__DEV__) {\n console.log(page, 'viewWillDisappear');\n }\n\n if (!enable()) {\n return;\n }\n\n if (!__DEV__) {\n NativeModules.NCYReport.leavePage(page);\n }\n },\n};\n"],"mappings":"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"}
@@ -14,19 +14,16 @@ export const SentryManager = {
14
14
  dsn: ToolkitConfig.SentryDSN,
15
15
  tracesSampleRate: 1.0
16
16
  });
17
- Notification.addListener('onLogin', _ref => {
17
+ Notification.addListener('onLoginSuccess', _ref => {
18
18
  let {
19
- error,
20
19
  user
21
20
  } = _ref;
22
- if (!error && user) {
23
- const sentryUser = {
24
- id: user.AVUser.get('objectId'),
25
- email: user.email,
26
- username: user.nickname
27
- };
28
- Sentry.setUser(sentryUser);
29
- }
21
+ const sentryUser = {
22
+ id: user.AVUser.get('objectId'),
23
+ email: user.email,
24
+ username: user.nickname
25
+ };
26
+ Sentry.setUser(sentryUser);
30
27
  });
31
28
  Notification.addListener('onLogout', () => {
32
29
  Sentry.setUser(null);
@@ -1 +1 @@
1
- {"version":3,"names":["Sentry","Notification","ToolkitConfig","isReady","SentryManager","init","__DEV__","SentryDSN","console","log","dsn","tracesSampleRate","addListener","_ref","error","user","sentryUser","id","AVUser","get","email","username","nickname","setUser","setTag","key","value","length"],"sources":["SentryManager.ts"],"sourcesContent":["import * as Sentry from '@sentry/react-native';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { ToolkitConfig } from './Tool';\n\nlet isReady = false;\nexport const SentryManager = {\n init: () => {\n isReady = !__DEV__ && !!ToolkitConfig.SentryDSN;\n if (!isReady) {\n console.log('不使用 Sentry');\n } else {\n // DEV 下不打开 Sentry\n console.log('使用 Sentry');\n Sentry.init({\n dsn: ToolkitConfig.SentryDSN,\n tracesSampleRate: 1.0,\n });\n\n Notification.addListener(\n 'onLogin',\n ({ error, user }: LoginResultDataType) => {\n if (!error && user) {\n const sentryUser: Sentry.User = {\n id: user.AVUser.get('objectId'),\n email: user.email,\n username: user.nickname,\n };\n Sentry.setUser(sentryUser);\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n Sentry.setUser(null);\n });\n\n // Sentry.nativeCrash();\n // Sentry.captureException(new Error('测试77!'));\n // throw new Error('My first Sentry error!');\n }\n },\n\n setTag: (key: string, value: any) => {\n if (isReady) {\n if (key.length) {\n Sentry.setTag(key, value);\n }\n }\n },\n};\n"],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,sBAAsB;AAE9C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,aAAa,QAAQ,QAAQ;AAEtC,IAAIC,OAAO,GAAG,KAAK;AACnB,OAAO,MAAMC,aAAa,GAAG;EAC3BC,IAAI,EAAEA,CAAA,KAAM;IACVF,OAAO,GAAG,CAACG,OAAO,IAAI,CAAC,CAACJ,aAAa,CAACK,SAAS;IAC/C,IAAI,CAACJ,OAAO,EAAE;MACZK,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;IAC3B,CAAC,MAAM;MACL;MACAD,OAAO,CAACC,GAAG,CAAC,WAAW,CAAC;MACxBT,MAAM,CAACK,IAAI,CAAC;QACVK,GAAG,EAAER,aAAa,CAACK,SAAS;QAC5BI,gBAAgB,EAAE;MACpB,CAAC,CAAC;MAEFV,YAAY,CAACW,WAAW,CACtB,SAAS,EACTC,IAAA,IAA0C;QAAA,IAAzC;UAAEC,KAAK;UAAEC;QAA0B,CAAC,GAAAF,IAAA;QACnC,IAAI,CAACC,KAAK,IAAIC,IAAI,EAAE;UAClB,MAAMC,UAAuB,GAAG;YAC9BC,EAAE,EAAEF,IAAI,CAACG,MAAM,CAACC,GAAG,CAAC,UAAU,CAAC;YAC/BC,KAAK,EAAEL,IAAI,CAACK,KAAK;YACjBC,QAAQ,EAAEN,IAAI,CAACO;UACjB,CAAC;UACDtB,MAAM,CAACuB,OAAO,CAACP,UAAU,CAAC;QAC5B;MACF,CACF,CAAC;MAEDf,YAAY,CAACW,WAAW,CAAC,UAAU,EAAE,MAAM;QACzCZ,MAAM,CAACuB,OAAO,CAAC,IAAI,CAAC;MACtB,CAAC,CAAC;;MAEF;MACA;MACA;IACF;EACF,CAAC;;EAEDC,MAAM,EAAEA,CAACC,GAAW,EAAEC,KAAU,KAAK;IACnC,IAAIvB,OAAO,EAAE;MACX,IAAIsB,GAAG,CAACE,MAAM,EAAE;QACd3B,MAAM,CAACwB,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC;MAC3B;IACF;EACF;AACF,CAAC"}
1
+ {"version":3,"names":["Sentry","Notification","ToolkitConfig","isReady","SentryManager","init","__DEV__","SentryDSN","console","log","dsn","tracesSampleRate","addListener","_ref","user","sentryUser","id","AVUser","get","email","username","nickname","setUser","setTag","key","value","length"],"sources":["SentryManager.ts"],"sourcesContent":["import * as Sentry from '@sentry/react-native';\nimport { LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { ToolkitConfig } from './Tool';\n\nlet isReady = false;\nexport const SentryManager = {\n init: () => {\n isReady = !__DEV__ && !!ToolkitConfig.SentryDSN;\n if (!isReady) {\n console.log('不使用 Sentry');\n } else {\n // DEV 下不打开 Sentry\n console.log('使用 Sentry');\n Sentry.init({\n dsn: ToolkitConfig.SentryDSN,\n tracesSampleRate: 1.0,\n });\n\n Notification.addListener(\n 'onLoginSuccess',\n ({ user }: LoginSuccessResultType) => {\n const sentryUser: Sentry.User = {\n id: user.AVUser.get('objectId'),\n email: user.email,\n username: user.nickname,\n };\n Sentry.setUser(sentryUser);\n }\n );\n\n Notification.addListener('onLogout', () => {\n Sentry.setUser(null);\n });\n\n // Sentry.nativeCrash();\n // Sentry.captureException(new Error('测试77!'));\n // throw new Error('My first Sentry error!');\n }\n },\n\n setTag: (key: string, value: any) => {\n if (isReady) {\n if (key.length) {\n Sentry.setTag(key, value);\n }\n }\n },\n};\n"],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,sBAAsB;AAE9C,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,aAAa,QAAQ,QAAQ;AAEtC,IAAIC,OAAO,GAAG,KAAK;AACnB,OAAO,MAAMC,aAAa,GAAG;EAC3BC,IAAI,EAAEA,CAAA,KAAM;IACVF,OAAO,GAAG,CAACG,OAAO,IAAI,CAAC,CAACJ,aAAa,CAACK,SAAS;IAC/C,IAAI,CAACJ,OAAO,EAAE;MACZK,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;IAC3B,CAAC,MAAM;MACL;MACAD,OAAO,CAACC,GAAG,CAAC,WAAW,CAAC;MACxBT,MAAM,CAACK,IAAI,CAAC;QACVK,GAAG,EAAER,aAAa,CAACK,SAAS;QAC5BI,gBAAgB,EAAE;MACpB,CAAC,CAAC;MAEFV,YAAY,CAACW,WAAW,CACtB,gBAAgB,EAChBC,IAAA,IAAsC;QAAA,IAArC;UAAEC;QAA6B,CAAC,GAAAD,IAAA;QAC/B,MAAME,UAAuB,GAAG;UAC9BC,EAAE,EAAEF,IAAI,CAACG,MAAM,CAACC,GAAG,CAAC,UAAU,CAAC;UAC/BC,KAAK,EAAEL,IAAI,CAACK,KAAK;UACjBC,QAAQ,EAAEN,IAAI,CAACO;QACjB,CAAC;QACDrB,MAAM,CAACsB,OAAO,CAACP,UAAU,CAAC;MAC5B,CACF,CAAC;MAEDd,YAAY,CAACW,WAAW,CAAC,UAAU,EAAE,MAAM;QACzCZ,MAAM,CAACsB,OAAO,CAAC,IAAI,CAAC;MACtB,CAAC,CAAC;;MAEF;MACA;MACA;IACF;EACF,CAAC;;EAEDC,MAAM,EAAEA,CAACC,GAAW,EAAEC,KAAU,KAAK;IACnC,IAAItB,OAAO,EAAE;MACX,IAAIqB,GAAG,CAACE,MAAM,EAAE;QACd1B,MAAM,CAACuB,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC;MAC3B;IACF;EACF;AACF,CAAC"}
@@ -40,15 +40,12 @@ export const VipManager = {
40
40
  console.log('Vip 模块用户登录 from 直接');
41
41
  onLogin(loginUser);
42
42
  }
43
- Notification.addListener('onLogin', async _ref => {
43
+ Notification.addListener('onLoginSuccess', async _ref => {
44
44
  let {
45
- error,
46
45
  user
47
46
  } = _ref;
48
47
  console.log('Vip 模块用户登录 from 监听');
49
- if (!error && user) {
50
- onLogin(user);
51
- }
48
+ onLogin(user);
52
49
  });
53
50
  Notification.addListener('onLogout', () => {
54
51
  Purchases.logOut();
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Purchases","DevConfig","LoginManager","Notification","BuildInPrefs","Tool","ToolkitConfig","VipAndroidManager","_customerInfo","isReady","onLogin","user","logIn","AVUser","get","setAttributes","nickname","VipManager","refreshVip","e","console","error","init","RC_API_KEY","log","RC_PROXY_URL","setProxyURL","configure","apiKey","loginUser","currentUser","addListener","_ref","logOut","purchase","purchasePackage","errorCode","isLogin","OS","customerInfo","entitlements","active","RC_ENTITLEMENT_ID","errorMsg","userCancelled","message","recover","_customerInfo$entitle","restorePurchases","vip","getPackages","offeringId","isForeverVip","__DEV__","offerings","getOfferings","targetOffering","all","current","availablePackages","length","packages","isVip","isTrailVip","filter","item","productItem","product","productCategory","_customerInfo2","_customerInfo3","_isVip2","_isVip","isActive","isSandbox","hasValue","DevVip","getValue","_VipManager$vipEndTim","vipEndTime","vipCountDay","_customerInfo4","time","expirationDate","date","Date","formatDate","vipBuyTime","_customerInfo5","originalPurchaseDate","_customerInfo6","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","includes","isFoundingVip","buyTime","foundingEndDate","buyDate","isVipExpired","_LoginManager$current2","_customerInfo7","getCustomerInfo","updateVipInfo","postNotification","_customerInfo8","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo9","expireDate","_LoginManager$current4","oldVipEndTime","batchUpdateUser"],"sources":["VipManager.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport Purchases, {\n CustomerInfo,\n PurchasesPackage,\n} from 'react-native-purchases';\nimport { DevConfig } from './DevConfig';\nimport { LoginManager, LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { Tool, ToolkitConfig } from './Tool';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { UserType } from './constant';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\n\nconst onLogin = async (user: UserType) => {\n try {\n await Purchases.logIn(user.AVUser.get('objectId'));\n await Purchases.setAttributes({ nickname: user.nickname });\n await VipManager.refreshVip();\n } catch (e) {\n console.error(e);\n }\n};\n\nexport const VipManager = {\n init: async () => {\n isReady = !!ToolkitConfig.RC_API_KEY;\n\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n\n console.log('Vip 模块初始化');\n\n if (ToolkitConfig.RC_PROXY_URL) {\n console.log('设置代理', ToolkitConfig.RC_PROXY_URL);\n await Purchases.setProxyURL(ToolkitConfig.RC_PROXY_URL);\n }\n Purchases.configure({ apiKey: ToolkitConfig.RC_API_KEY });\n\n VipManager.refreshVip();\n\n const loginUser = LoginManager.currentUser();\n if (loginUser) {\n console.log('Vip 模块用户登录 from 直接');\n onLogin(loginUser);\n }\n\n Notification.addListener(\n 'onLogin',\n async ({ error, user }: LoginResultDataType) => {\n console.log('Vip 模块用户登录 from 监听');\n if (!error && user) {\n onLogin(user);\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n Purchases.logOut();\n _customerInfo = null;\n });\n },\n\n purchase: async (purchasePackage: PurchasesPackage) => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n if (!purchasePackage) {\n return { errorCode: -4 };\n }\n\n console.log('购买商品', purchasePackage);\n\n if (Platform.OS === 'android') {\n return await VipAndroidManager.purchase(purchasePackage);\n }\n\n try {\n const { customerInfo } = await Purchases.purchasePackage(purchasePackage);\n\n await VipManager.refreshVip(customerInfo);\n if (\n typeof customerInfo.entitlements.active[\n ToolkitConfig.RC_ENTITLEMENT_ID\n ] !== 'undefined'\n ) {\n console.log('购买成功');\n return { errorCode: 0 };\n } else {\n console.log('购买失败(-5)');\n return { errorCode: -5, errorMsg: '' };\n }\n } catch (e: any) {\n if (!e.userCancelled) {\n console.log('购买失败(-5)', e.message);\n return { errorCode: -5, errorMsg: e.message };\n } else {\n console.log('购买取消(-2)');\n return { errorCode: -2 };\n }\n }\n },\n\n recover: async () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n try {\n if (Platform.OS === 'android') {\n return await VipAndroidManager.recover();\n }\n\n console.log('iOS 恢复购买');\n const customerInfo = await Purchases.restorePurchases();\n await VipManager.refreshVip(customerInfo);\n if (customerInfo.entitlements.active?.vip) {\n console.log('恢复成功');\n return { errorCode: 0 };\n } else {\n console.log('恢复失败(-2)');\n return { errorCode: -2 };\n }\n } catch (e: any) {\n console.log('恢复失败(-3)', e.message);\n return { errorCode: -3, errorMsg: e.message };\n }\n },\n\n getPackages: async (offeringId?: string): Promise<PurchasesPackage[]> => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return [];\n }\n\n if (VipManager.isForeverVip()) {\n return [];\n }\n\n if (Platform.OS === 'android' || __DEV__) {\n return VipAndroidManager.getPackages(offeringId);\n }\n\n try {\n const offerings = await Purchases.getOfferings();\n let targetOffering;\n if (offeringId) {\n targetOffering = offerings.all[offeringId];\n }\n\n if (!targetOffering) {\n targetOffering = offerings.current;\n }\n\n console.log('获取商品');\n if (\n targetOffering !== null &&\n targetOffering.availablePackages.length !== 0\n ) {\n let packages = targetOffering.availablePackages;\n // 如果是订阅的,非试用的,过滤订阅产品,只展示永久 VIP\n if (VipManager.isVip() && !VipManager.isTrailVip()) {\n packages = packages.filter((item) => {\n const productItem: any = item.product;\n return productItem.productCategory === 'NON_SUBSCRIPTION';\n });\n }\n return packages;\n } else {\n return [];\n }\n } catch (e) {\n console.error('Get Product Fail', e);\n return [];\n }\n },\n\n isVip: () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return false;\n }\n\n let _isVip = _customerInfo?.entitlements?.active?.vip?.isActive;\n if (\n _isVip &&\n !__DEV__ &&\n _customerInfo?.entitlements?.active?.vip.isSandbox\n ) {\n _isVip = false;\n }\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevVip)) {\n _isVip = DevConfig.getValue(BuildInPrefs.DevVip) ? true : false;\n }\n }\n return _isVip ?? false;\n },\n\n isForeverVip: () => {\n // 苹果的永久会员是非订阅制的,因此 RevenueCat 的 vipEndTime 会空\n return (\n VipManager.isVip() &&\n (VipManager.vipEndTime()?.length === 0 ||\n VipManager.vipCountDay() >= 36500)\n );\n },\n\n vipEndTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipBuyTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.originalPurchaseDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipCountDay: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n const diff = date.getTime() - new Date().getTime();\n return Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n }\n return 0;\n },\n\n isTrailVip: () => {\n if (VipManager.isForeverVip()) {\n return false;\n }\n if (!VipManager.isVip()) {\n return false;\n }\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType?.includes('rc_promo_')) {\n return true;\n }\n return false;\n },\n\n isFoundingVip: () => {\n if (!VipManager.isForeverVip()) {\n return false;\n }\n const buyTime = VipManager.vipBuyTime();\n if (!buyTime) {\n return false;\n }\n const foundingEndDate = new Date('2025-03-31');\n const buyDate = new Date(buyTime);\n return buyDate <= foundingEndDate;\n },\n\n isVipExpired: () => {\n // 不是会员,但是 vipType 存在,说明曾经领过会员\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n return !VipManager.isVip() && vipType;\n },\n\n refreshVip: async (customerInfo?: CustomerInfo) => {\n try {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n console.log('刷新 VIP');\n if (customerInfo) {\n _customerInfo = customerInfo;\n } else {\n _customerInfo = await Purchases.getCustomerInfo();\n }\n console.log('VIP 信息刷新完毕', _customerInfo?.entitlements?.active);\n console.log('是否是 VIP', VipManager.isVip());\n console.log('VipInfo 过期时间', VipManager.vipEndTime());\n\n await updateVipInfo();\n // 必须确保通知正常发出,因为其他模块依赖这个时机\n Notification.postNotification('onVipRefresh', {});\n } catch (e) {\n console.error(e);\n Notification.postNotification('onVipRefresh', { e });\n }\n },\n};\n\nconst updateVipInfo = async () => {\n if (!VipManager.isVip() || !LoginManager.isLogin()) {\n return;\n }\n\n const keys = [];\n const values = [];\n\n const vipType = _customerInfo?.entitlements?.active?.vip?.productIdentifier;\n const oldVipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType && vipType !== oldVipType) {\n keys.push('vipType');\n values.push(vipType);\n }\n\n let vipEndTime;\n if (VipManager.isForeverVip()) {\n vipEndTime = new Date(10413763200000); // 约定 2300-01-01 00:00:00 为永久会员\n } else {\n const expireDate = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (expireDate) {\n vipEndTime = new Date(expireDate);\n }\n }\n if (vipEndTime) {\n const oldVipEndTime = LoginManager.currentUser()?.AVUser.get('vipEndTime');\n if (vipEndTime.getTime() !== oldVipEndTime?.getTime()) {\n keys.push('vipEndTime');\n values.push(vipEndTime);\n }\n }\n\n if (keys.length > 0) {\n await LoginManager.batchUpdateUser(keys, values);\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","Purchases","DevConfig","LoginManager","Notification","BuildInPrefs","Tool","ToolkitConfig","VipAndroidManager","_customerInfo","isReady","onLogin","user","logIn","AVUser","get","setAttributes","nickname","VipManager","refreshVip","e","console","error","init","RC_API_KEY","log","RC_PROXY_URL","setProxyURL","configure","apiKey","loginUser","currentUser","addListener","_ref","logOut","purchase","purchasePackage","errorCode","isLogin","OS","customerInfo","entitlements","active","RC_ENTITLEMENT_ID","errorMsg","userCancelled","message","recover","_customerInfo$entitle","restorePurchases","vip","getPackages","offeringId","isForeverVip","__DEV__","offerings","getOfferings","targetOffering","all","current","availablePackages","length","packages","isVip","isTrailVip","filter","item","productItem","product","productCategory","_customerInfo2","_customerInfo3","_isVip2","_isVip","isActive","isSandbox","hasValue","DevVip","getValue","_VipManager$vipEndTim","vipEndTime","vipCountDay","_customerInfo4","time","expirationDate","date","Date","formatDate","vipBuyTime","_customerInfo5","originalPurchaseDate","_customerInfo6","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","includes","isFoundingVip","buyTime","foundingEndDate","buyDate","isVipExpired","_LoginManager$current2","_customerInfo7","getCustomerInfo","updateVipInfo","postNotification","_customerInfo8","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo9","expireDate","_LoginManager$current4","oldVipEndTime","batchUpdateUser"],"sources":["VipManager.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport Purchases, {\n CustomerInfo,\n PurchasesPackage,\n} from 'react-native-purchases';\nimport { DevConfig } from './DevConfig';\nimport { LoginManager, LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { Tool, ToolkitConfig } from './Tool';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { UserType } from './constant';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\n\nconst onLogin = async (user: UserType) => {\n try {\n await Purchases.logIn(user.AVUser.get('objectId'));\n await Purchases.setAttributes({ nickname: user.nickname });\n await VipManager.refreshVip();\n } catch (e) {\n console.error(e);\n }\n};\n\nexport const VipManager = {\n init: async () => {\n isReady = !!ToolkitConfig.RC_API_KEY;\n\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n\n console.log('Vip 模块初始化');\n\n if (ToolkitConfig.RC_PROXY_URL) {\n console.log('设置代理', ToolkitConfig.RC_PROXY_URL);\n await Purchases.setProxyURL(ToolkitConfig.RC_PROXY_URL);\n }\n Purchases.configure({ apiKey: ToolkitConfig.RC_API_KEY });\n\n VipManager.refreshVip();\n\n const loginUser = LoginManager.currentUser();\n if (loginUser) {\n console.log('Vip 模块用户登录 from 直接');\n onLogin(loginUser);\n }\n\n Notification.addListener(\n 'onLoginSuccess',\n async ({ user }: LoginSuccessResultType) => {\n console.log('Vip 模块用户登录 from 监听');\n onLogin(user);\n }\n );\n\n Notification.addListener('onLogout', () => {\n Purchases.logOut();\n _customerInfo = null;\n });\n },\n\n purchase: async (purchasePackage: PurchasesPackage) => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n if (!purchasePackage) {\n return { errorCode: -4 };\n }\n\n console.log('购买商品', purchasePackage);\n\n if (Platform.OS === 'android') {\n return await VipAndroidManager.purchase(purchasePackage);\n }\n\n try {\n const { customerInfo } = await Purchases.purchasePackage(purchasePackage);\n\n await VipManager.refreshVip(customerInfo);\n if (\n typeof customerInfo.entitlements.active[\n ToolkitConfig.RC_ENTITLEMENT_ID\n ] !== 'undefined'\n ) {\n console.log('购买成功');\n return { errorCode: 0 };\n } else {\n console.log('购买失败(-5)');\n return { errorCode: -5, errorMsg: '' };\n }\n } catch (e: any) {\n if (!e.userCancelled) {\n console.log('购买失败(-5)', e.message);\n return { errorCode: -5, errorMsg: e.message };\n } else {\n console.log('购买取消(-2)');\n return { errorCode: -2 };\n }\n }\n },\n\n recover: async () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n try {\n if (Platform.OS === 'android') {\n return await VipAndroidManager.recover();\n }\n\n console.log('iOS 恢复购买');\n const customerInfo = await Purchases.restorePurchases();\n await VipManager.refreshVip(customerInfo);\n if (customerInfo.entitlements.active?.vip) {\n console.log('恢复成功');\n return { errorCode: 0 };\n } else {\n console.log('恢复失败(-2)');\n return { errorCode: -2 };\n }\n } catch (e: any) {\n console.log('恢复失败(-3)', e.message);\n return { errorCode: -3, errorMsg: e.message };\n }\n },\n\n getPackages: async (offeringId?: string): Promise<PurchasesPackage[]> => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return [];\n }\n\n if (VipManager.isForeverVip()) {\n return [];\n }\n\n if (Platform.OS === 'android' || __DEV__) {\n return VipAndroidManager.getPackages(offeringId);\n }\n\n try {\n const offerings = await Purchases.getOfferings();\n let targetOffering;\n if (offeringId) {\n targetOffering = offerings.all[offeringId];\n }\n\n if (!targetOffering) {\n targetOffering = offerings.current;\n }\n\n console.log('获取商品');\n if (\n targetOffering !== null &&\n targetOffering.availablePackages.length !== 0\n ) {\n let packages = targetOffering.availablePackages;\n // 如果是订阅的,非试用的,过滤订阅产品,只展示永久 VIP\n if (VipManager.isVip() && !VipManager.isTrailVip()) {\n packages = packages.filter((item) => {\n const productItem: any = item.product;\n return productItem.productCategory === 'NON_SUBSCRIPTION';\n });\n }\n return packages;\n } else {\n return [];\n }\n } catch (e) {\n console.error('Get Product Fail', e);\n return [];\n }\n },\n\n isVip: () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return false;\n }\n\n let _isVip = _customerInfo?.entitlements?.active?.vip?.isActive;\n if (\n _isVip &&\n !__DEV__ &&\n _customerInfo?.entitlements?.active?.vip.isSandbox\n ) {\n _isVip = false;\n }\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevVip)) {\n _isVip = DevConfig.getValue(BuildInPrefs.DevVip) ? true : false;\n }\n }\n return _isVip ?? false;\n },\n\n isForeverVip: () => {\n // 苹果的永久会员是非订阅制的,因此 RevenueCat 的 vipEndTime 会空\n return (\n VipManager.isVip() &&\n (VipManager.vipEndTime()?.length === 0 ||\n VipManager.vipCountDay() >= 36500)\n );\n },\n\n vipEndTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipBuyTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.originalPurchaseDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipCountDay: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n const diff = date.getTime() - new Date().getTime();\n return Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n }\n return 0;\n },\n\n isTrailVip: () => {\n if (VipManager.isForeverVip()) {\n return false;\n }\n if (!VipManager.isVip()) {\n return false;\n }\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType?.includes('rc_promo_')) {\n return true;\n }\n return false;\n },\n\n isFoundingVip: () => {\n if (!VipManager.isForeverVip()) {\n return false;\n }\n const buyTime = VipManager.vipBuyTime();\n if (!buyTime) {\n return false;\n }\n const foundingEndDate = new Date('2025-03-31');\n const buyDate = new Date(buyTime);\n return buyDate <= foundingEndDate;\n },\n\n isVipExpired: () => {\n // 不是会员,但是 vipType 存在,说明曾经领过会员\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n return !VipManager.isVip() && vipType;\n },\n\n refreshVip: async (customerInfo?: CustomerInfo) => {\n try {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n console.log('刷新 VIP');\n if (customerInfo) {\n _customerInfo = customerInfo;\n } else {\n _customerInfo = await Purchases.getCustomerInfo();\n }\n console.log('VIP 信息刷新完毕', _customerInfo?.entitlements?.active);\n console.log('是否是 VIP', VipManager.isVip());\n console.log('VipInfo 过期时间', VipManager.vipEndTime());\n\n await updateVipInfo();\n // 必须确保通知正常发出,因为其他模块依赖这个时机\n Notification.postNotification('onVipRefresh', {});\n } catch (e) {\n console.error(e);\n Notification.postNotification('onVipRefresh', { e });\n }\n },\n};\n\nconst updateVipInfo = async () => {\n if (!VipManager.isVip() || !LoginManager.isLogin()) {\n return;\n }\n\n const keys = [];\n const values = [];\n\n const vipType = _customerInfo?.entitlements?.active?.vip?.productIdentifier;\n const oldVipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType && vipType !== oldVipType) {\n keys.push('vipType');\n values.push(vipType);\n }\n\n let vipEndTime;\n if (VipManager.isForeverVip()) {\n vipEndTime = new Date(10413763200000); // 约定 2300-01-01 00:00:00 为永久会员\n } else {\n const expireDate = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (expireDate) {\n vipEndTime = new Date(expireDate);\n }\n }\n if (vipEndTime) {\n const oldVipEndTime = LoginManager.currentUser()?.AVUser.get('vipEndTime');\n if (vipEndTime.getTime() !== oldVipEndTime?.getTime()) {\n keys.push('vipEndTime');\n values.push(vipEndTime);\n }\n }\n\n if (keys.length > 0) {\n await LoginManager.batchUpdateUser(keys, values);\n }\n};\n"],"mappings":"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"}
@@ -2,10 +2,13 @@ import { LoginAuthDataType, LoginType, UserType } from './constant';
2
2
  type FetchImageFunctionType = ({ headimgurl }: {
3
3
  headimgurl: string;
4
4
  }) => void;
5
- export type LoginResultDataType = {
5
+ export type LoginSuccessResultType = {
6
6
  isAuto?: boolean;
7
- user?: UserType;
8
- error?: string | object;
7
+ user: UserType;
8
+ };
9
+ export type LoginFailResulType = {
10
+ isAuto?: boolean;
11
+ error: string | object;
9
12
  code?: string;
10
13
  };
11
14
  export declare const LoginManager: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norcy/react-native-toolkit",
3
- "version": "0.1.137",
3
+ "version": "0.1.139",
4
4
  "description": "My Toolkit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -1,6 +1,6 @@
1
1
  import { Object } from 'leancloud-storage';
2
2
  import { Platform } from 'react-native';
3
- import { LoginManager, LoginResultDataType } from './LoginManager';
3
+ import { LoginManager, LoginSuccessResultType } from './LoginManager';
4
4
  import { Notification } from './Notification';
5
5
  import { VersionManager } from './VersionManager';
6
6
  import { VipAndroidManager } from './VipAndroidManager';
@@ -75,9 +75,9 @@ const ConfigDataModel = {
75
75
  MyItems = defaultValues;
76
76
 
77
77
  Notification.addListener(
78
- 'onLogin',
79
- ({ isAuto, user, error }: LoginResultDataType) => {
80
- if (!isAuto && user && !error) {
78
+ 'onLoginSuccess',
79
+ ({ isAuto }: LoginSuccessResultType) => {
80
+ if (!isAuto) {
81
81
  isDataReady = false;
82
82
  isNetwordDataReady = false;
83
83
  ConfigDataModel.fetch();