@ethora/chat-component-rn 26.10.1 → 26.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/hooks/useLogout.js +15 -10
- package/lib/commonjs/hooks/useLogout.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/hooks/useLogout.js +15 -10
- package/lib/module/hooks/useLogout.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/hooks/useLogout.tsx +15 -10
- package/src/version.ts +1 -1
|
@@ -54,7 +54,18 @@ const logoutService = exports.logoutService = {
|
|
|
54
54
|
* AFTER all the disk work has actually landed.
|
|
55
55
|
*/
|
|
56
56
|
performLogout: async () => {
|
|
57
|
-
// 0.
|
|
57
|
+
// 0. Push. Release the device-token registration on the backend
|
|
58
|
+
// FIRST, while the access token is still valid (the token itself
|
|
59
|
+
// is kept so the next login re-registers it). It runs alongside
|
|
60
|
+
// the private-store flush below instead of after it: the flush
|
|
61
|
+
// can take up to 2s, and a host with a logout time budget could
|
|
62
|
+
// cut us off before the release went out, leaving the device
|
|
63
|
+
// receiving pushes for the logged-out user.
|
|
64
|
+
const pushRelease = (0, _pushRegistration.releasePushRegistration)().catch(e => {
|
|
65
|
+
console.warn('logoutService: push release failed', e);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// 0a. Flush lastViewedTimestamp to the server's private store BEFORE
|
|
58
69
|
// we close XMPP. Only rooms with no outstanding unread (plus the
|
|
59
70
|
// visible room) get their entries updated — rooms with unread
|
|
60
71
|
// keep their old marker so the next login still surfaces those
|
|
@@ -90,15 +101,9 @@ const logoutService = exports.logoutService = {
|
|
|
90
101
|
/* non-fatal */
|
|
91
102
|
}
|
|
92
103
|
|
|
93
|
-
// 2. Push.
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
// room cache.
|
|
97
|
-
try {
|
|
98
|
-
await (0, _pushRegistration.releasePushRegistration)();
|
|
99
|
-
} catch (e) {
|
|
100
|
-
console.warn('logoutService: push release failed', e);
|
|
101
|
-
}
|
|
104
|
+
// 2. Push. Wait for the release started in step 0, then clear the
|
|
105
|
+
// local MucSub room cache.
|
|
106
|
+
await pushRelease;
|
|
102
107
|
try {
|
|
103
108
|
await _pushSubscriptionService.pushSubscriptionService.reset();
|
|
104
109
|
} catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactRedux","require","_reactNative","_asyncStorage","_interopRequireDefault","_roomStore","_chatSettingsSlice","_roomsSlice","_react","_roomHeapSlice","_pushSubscriptionService","_pushRegistration","_rooms","_persistence","_secureUserStorage","_getServerReadTimestamp","_e2ee","e","__esModule","default","LIBRARY_STRAY_KEYS","logoutService","exports","performLogout","state","store","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","getFlushBoundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","
|
|
1
|
+
{"version":3,"names":["_reactRedux","require","_reactNative","_asyncStorage","_interopRequireDefault","_roomStore","_chatSettingsSlice","_roomsSlice","_react","_roomHeapSlice","_pushSubscriptionService","_pushRegistration","_rooms","_persistence","_secureUserStorage","_getServerReadTimestamp","_e2ee","e","__esModule","default","LIBRARY_STRAY_KEYS","logoutService","exports","performLogout","pushRelease","releasePushRegistration","catch","console","warn","state","store","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","getFlushBoundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","DeviceEventEmitter","emit","pushSubscriptionService","reset","stopOmemo","clearOpenedFiles","clearRoomsRestCache","dispatch","setLogoutState","clearHeap","logout","clearPersistedState","AsyncStorage","multiRemove","secureUserStorage","remove","useLogout","useDispatch","useCallback","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/version.js
CHANGED
|
@@ -6,5 +6,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ETHORA_CHAT_COMPONENT_VERSION = void 0;
|
|
7
7
|
// Generated by scripts/sync-version.mjs on `npm version`.
|
|
8
8
|
// Edit package.json's version instead of this file.
|
|
9
|
-
const ETHORA_CHAT_COMPONENT_VERSION = exports.ETHORA_CHAT_COMPONENT_VERSION = '26.10.
|
|
9
|
+
const ETHORA_CHAT_COMPONENT_VERSION = exports.ETHORA_CHAT_COMPONENT_VERSION = '26.10.2';
|
|
10
10
|
//# sourceMappingURL=version.js.map
|
|
@@ -50,7 +50,18 @@ const logoutService = {
|
|
|
50
50
|
* AFTER all the disk work has actually landed.
|
|
51
51
|
*/
|
|
52
52
|
performLogout: async () => {
|
|
53
|
-
// 0.
|
|
53
|
+
// 0. Push. Release the device-token registration on the backend
|
|
54
|
+
// FIRST, while the access token is still valid (the token itself
|
|
55
|
+
// is kept so the next login re-registers it). It runs alongside
|
|
56
|
+
// the private-store flush below instead of after it: the flush
|
|
57
|
+
// can take up to 2s, and a host with a logout time budget could
|
|
58
|
+
// cut us off before the release went out, leaving the device
|
|
59
|
+
// receiving pushes for the logged-out user.
|
|
60
|
+
const pushRelease = releasePushRegistration().catch(e => {
|
|
61
|
+
console.warn('logoutService: push release failed', e);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// 0a. Flush lastViewedTimestamp to the server's private store BEFORE
|
|
54
65
|
// we close XMPP. Only rooms with no outstanding unread (plus the
|
|
55
66
|
// visible room) get their entries updated — rooms with unread
|
|
56
67
|
// keep their old marker so the next login still surfaces those
|
|
@@ -86,15 +97,9 @@ const logoutService = {
|
|
|
86
97
|
/* non-fatal */
|
|
87
98
|
}
|
|
88
99
|
|
|
89
|
-
// 2. Push.
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
// room cache.
|
|
93
|
-
try {
|
|
94
|
-
await releasePushRegistration();
|
|
95
|
-
} catch (e) {
|
|
96
|
-
console.warn('logoutService: push release failed', e);
|
|
97
|
-
}
|
|
100
|
+
// 2. Push. Wait for the release started in step 0, then clear the
|
|
101
|
+
// local MucSub room cache.
|
|
102
|
+
await pushRelease;
|
|
98
103
|
try {
|
|
99
104
|
await pushSubscriptionService.reset();
|
|
100
105
|
} catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","releasePushRegistration","clearRoomsRestCache","clearPersistedState","secureUserStorage","getFlushBoundaryTs","stopOmemo","LIBRARY_STRAY_KEYS","logoutService","performLogout","state","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","
|
|
1
|
+
{"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","releasePushRegistration","clearRoomsRestCache","clearPersistedState","secureUserStorage","getFlushBoundaryTs","stopOmemo","LIBRARY_STRAY_KEYS","logoutService","performLogout","pushRelease","catch","e","console","warn","state","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","emit","reset","clearOpenedFiles","require","dispatch","multiRemove","remove","useLogout","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLogout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLogout.tsx"],"names":[],"mappings":"AA6BA,QAAA,MAAM,aAAa;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;yBACsB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"useLogout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLogout.tsx"],"names":[],"mappings":"AA6BA,QAAA,MAAM,aAAa;IACjB;;;;;;;;;;;;;;;;;;;;OAoBG;yBACsB,OAAO,CAAC,IAAI,CAAC;CA4HvC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,QAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAahD,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const ETHORA_CHAT_COMPONENT_VERSION = "26.10.
|
|
1
|
+
export declare const ETHORA_CHAT_COMPONENT_VERSION = "26.10.2";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
package/src/hooks/useLogout.tsx
CHANGED
|
@@ -50,7 +50,18 @@ const logoutService = {
|
|
|
50
50
|
* AFTER all the disk work has actually landed.
|
|
51
51
|
*/
|
|
52
52
|
performLogout: async (): Promise<void> => {
|
|
53
|
-
// 0.
|
|
53
|
+
// 0. Push. Release the device-token registration on the backend
|
|
54
|
+
// FIRST, while the access token is still valid (the token itself
|
|
55
|
+
// is kept so the next login re-registers it). It runs alongside
|
|
56
|
+
// the private-store flush below instead of after it: the flush
|
|
57
|
+
// can take up to 2s, and a host with a logout time budget could
|
|
58
|
+
// cut us off before the release went out, leaving the device
|
|
59
|
+
// receiving pushes for the logged-out user.
|
|
60
|
+
const pushRelease = releasePushRegistration().catch((e) => {
|
|
61
|
+
console.warn('logoutService: push release failed', e);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// 0a. Flush lastViewedTimestamp to the server's private store BEFORE
|
|
54
65
|
// we close XMPP. Only rooms with no outstanding unread (plus the
|
|
55
66
|
// visible room) get their entries updated — rooms with unread
|
|
56
67
|
// keep their old marker so the next login still surfaces those
|
|
@@ -95,15 +106,9 @@ const logoutService = {
|
|
|
95
106
|
/* non-fatal */
|
|
96
107
|
}
|
|
97
108
|
|
|
98
|
-
// 2. Push.
|
|
99
|
-
//
|
|
100
|
-
|
|
101
|
-
// room cache.
|
|
102
|
-
try {
|
|
103
|
-
await releasePushRegistration();
|
|
104
|
-
} catch (e) {
|
|
105
|
-
console.warn('logoutService: push release failed', e);
|
|
106
|
-
}
|
|
109
|
+
// 2. Push. Wait for the release started in step 0, then clear the
|
|
110
|
+
// local MucSub room cache.
|
|
111
|
+
await pushRelease;
|
|
107
112
|
try {
|
|
108
113
|
await pushSubscriptionService.reset();
|
|
109
114
|
} catch (e) {
|
package/src/version.ts
CHANGED