@inboxsdk/core 1.0.0 → 1.0.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/inboxsdk.js +34 -48
- package/inboxsdk.js.map +1 -1
- package/package.json +1 -1
- package/pageWorld.js.map +1 -1
- package/src/inboxsdk-js/inboxsdk.js +0 -2
- package/src/inboxsdk.d.ts +16 -1
- package/src/injected-js/gmail/modify-suggestions.d.ts +2 -0
- package/src/injected-js/gmail/modify-suggestions.d.ts.map +1 -1
- package/src/platform-implementation-js/constants/router.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/custom-style.d.ts +2 -0
- package/src/platform-implementation-js/dom-driver/gmail/custom-style.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/custom-style.js +16 -21
- package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.d.ts +12 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-butter-bar-driver.js +152 -187
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-app-menu-item.js +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/add-toolbar-button-for-app.js +15 -20
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.d.ts +4 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/create-link.js +59 -56
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.d.ts +9 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-draft-id-for-message-id.js +42 -54
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.d.ts +4 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-native-nav-item.js +31 -33
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.d.ts +8 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/get-url-object.js +21 -23
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.d.ts +4 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadForOldGmailThreadId.js +19 -31
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/getSyncThreadFromSyncThreadId.d.ts +7 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/goto-view.js +51 -60
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.d.ts +20 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/keyboard-shortcut-help-modifier.js +166 -130
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/open-compose-window.js +17 -22
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.d.ts +4 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/override-gmail-back-button.js +44 -51
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-query-rewriter.js +17 -22
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/register-search-suggestions-provider.js +136 -129
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.d.ts +6 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-compose-view-driver-stream.js +102 -95
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.d.ts +6 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.js +144 -169
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-app-id-warning.js +14 -23
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-route-view.js +41 -49
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js +286 -294
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.js +19 -26
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/suppressAddon.js +36 -42
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/temporary-track-download-url-validity.js +34 -33
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.d.ts +13 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/thread-row-identifier.js +80 -81
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/track-events.js +124 -81
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.d.ts +10 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.js +47 -54
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts +183 -109
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver.js +712 -647
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/gmail-element-getter.js +1 -4
- package/src/platform-implementation-js/dom-driver/gmail/gmail-page-communicator.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.d.ts +7 -0
- package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/make-xhr-interceptor.js +93 -82
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-sidebar-view/index.d.ts +7 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-app-toolbar-button-view.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.d.ts +11 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-backdrop.js +20 -32
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/add-status-bar.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view/gmail-compose-button-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-compose-view.d.ts +70 -69
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-message-view.d.ts +8 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-nav-item-view.js +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-processor.d.ts +8 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.d.ts +3 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-route-view/gmail-route-view.js +3 -1
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-row-list-view.d.ts +10 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-row-view.d.ts +5 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-thread-view.d.ts +9 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/gmail-toolbar-view.d.ts +12 -0
- package/src/platform-implementation-js/dom-driver/gmail/views/native-gmail-nav-item-view.d.ts +9 -0
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/button-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-accessory-button-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/create-parent-accessory-button-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/widgets/buttons/modal-button-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-dropdown-view.d.ts.map +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.d.ts +20 -0
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-modal-view-driver.js +107 -108
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.d.ts +16 -0
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-mole-view-driver.js +1 -1
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.d.ts +13 -0
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.d.ts.map +1 -0
- package/src/platform-implementation-js/dom-driver/gmail/widgets/gmail-top-message-bar-driver.js +66 -66
- package/src/platform-implementation-js/dom-driver/inbox/views/inbox-drawer-view.d.ts +5 -0
- package/src/platform-implementation-js/driver-common/getGmailMessageIdForSyncMessageId.d.ts +6 -0
- package/src/platform-implementation-js/driver-common/getGmailThreadIdForRfcMessageId.d.ts +6 -0
- package/src/platform-implementation-js/driver-common/sidebar/ContentPanelViewDriver.d.ts +1 -0
- package/src/platform-implementation-js/driver-interfaces/driver.d.ts +3 -6
- package/src/platform-implementation-js/driver-interfaces/mole-view-driver.d.ts +27 -0
- package/src/platform-implementation-js/lib/ErrorCollector.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/Membrane.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/ScrollableContainByScreen.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/common-page-communicator.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.d.ts +4 -0
- package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.d.ts.map +1 -0
- package/src/platform-implementation-js/lib/copyAndValidateAutocompleteResults.js +34 -34
- package/src/platform-implementation-js/lib/dom/element-view-mapper.d.ts +10 -0
- package/src/platform-implementation-js/lib/dom/element-view-mapper.d.ts.map +1 -0
- package/src/platform-implementation-js/lib/dom/element-view-mapper.js +9 -17
- package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.d.ts +4 -0
- package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.d.ts.map +1 -0
- package/src/platform-implementation-js/lib/dom/on-mouse-down-and-up.js +7 -16
- package/src/platform-implementation-js/lib/handler-registry.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/logger.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/persistent-queue.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/populateRouteID.d.ts +6 -0
- package/src/platform-implementation-js/lib/rewriteCssWithIdMap.d.ts +2 -0
- package/src/platform-implementation-js/lib/rewriteCssWithIdMap.d.ts.map +1 -0
- package/src/platform-implementation-js/lib/rewriteCssWithIdMap.js +4 -11
- package/src/platform-implementation-js/lib/routeIDmatchesHash.d.ts +4 -0
- package/src/platform-implementation-js/lib/safe-event-emitter.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/stopper-pool.d.ts.map +1 -1
- package/src/platform-implementation-js/lib/toLiveSet.d.ts +5 -0
- package/src/platform-implementation-js/lib/toLiveSet.d.ts.map +1 -0
- package/src/platform-implementation-js/lib/toLiveSet.js +22 -33
- package/src/platform-implementation-js/namespaces/butter-bar.d.ts.map +1 -1
- package/src/platform-implementation-js/namespaces/router.d.ts +1 -0
- package/src/platform-implementation-js/platform-implementation.js +2 -9
- package/src/platform-implementation-js/views/SimpleElementView.d.ts.map +1 -1
- package/src/platform-implementation-js/views/compose-button-view.d.ts.map +1 -1
- package/src/platform-implementation-js/views/compose-view.d.ts.map +1 -1
- package/src/platform-implementation-js/views/keyboard-shortcut-handle.d.ts.map +1 -1
- package/src/platform-implementation-js/widgets/buttons/basic-button-view-controller.d.ts.map +1 -1
- package/src/platform-implementation-js/widgets/buttons/dropdown-view.d.ts.map +1 -1
- package/src/inboxsdk-js/check-requirements.js +0 -11
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/setup-route-view-driver-stream.test.js +0 -183
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.test.js +0 -218
- package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/user-info.test.js +0 -85
- package/src/platform-implementation-js/lib/rewriteCssWithIdMap.test.js +0 -43
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-custom-thread-list.js
CHANGED
|
@@ -1,22 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.default = showCustomThreadList;
|
|
8
|
-
var _find = _interopRequireDefault(require("lodash/find"));
|
|
9
|
-
var _kefir = _interopRequireDefault(require("kefir"));
|
|
10
|
-
var _gmailElementGetter = _interopRequireDefault(require("../gmail-element-getter"));
|
|
11
|
-
var GRP = _interopRequireWildcard(require("../gmail-response-processor"));
|
|
12
|
-
var SyncGRP = _interopRequireWildcard(require("../gmail-sync-response-processor"));
|
|
13
|
-
var _isStreakAppId = _interopRequireDefault(require("../../../lib/isStreakAppId"));
|
|
14
|
-
var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
|
|
15
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1
|
+
import find from 'lodash/find';
|
|
2
|
+
import GmailElementGetter from '../gmail-element-getter';
|
|
3
|
+
import * as GRP from '../gmail-response-processor';
|
|
4
|
+
import * as SyncGRP from '../gmail-sync-response-processor';
|
|
5
|
+
import isStreakAppId from '../../../lib/isStreakAppId';
|
|
6
|
+
import update from 'immutability-helper';
|
|
17
7
|
const threadListHandlersToSearchStrings = new Map();
|
|
18
8
|
const MAX_THREADS_PER_PAGE = 50;
|
|
19
|
-
|
|
20
9
|
/*
|
|
21
10
|
Timeline of how a custom thread list works:
|
|
22
11
|
|
|
@@ -63,305 +52,308 @@ for the search>
|
|
|
63
52
|
list route id, and associates the new RouteView with the custom list.
|
|
64
53
|
|
|
65
54
|
*/
|
|
66
|
-
|
|
67
55
|
function copyAndOmitExcessThreads(ids, logger) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
56
|
+
if (ids.length > MAX_THREADS_PER_PAGE) {
|
|
57
|
+
// upgrade to deprecationWarning later
|
|
58
|
+
logger.error(new Error('Received more than the maximum number of threads specified by handler, ' +
|
|
59
|
+
'ignoring additional threads (https://www.inboxsdk.com/docs/#Router).'));
|
|
60
|
+
}
|
|
61
|
+
return ids.slice(0, MAX_THREADS_PER_PAGE);
|
|
73
62
|
}
|
|
74
63
|
function _findIdFailure(id, err) {
|
|
75
|
-
|
|
76
|
-
|
|
64
|
+
console.log('Failed to find id for thread', id, err); //eslint-disable-line no-console
|
|
65
|
+
return null;
|
|
77
66
|
}
|
|
78
67
|
function parseOnActivateResult(logger, start, result) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
} else if (typeof result === 'object') {
|
|
88
|
-
const {
|
|
89
|
-
total,
|
|
90
|
-
hasMore,
|
|
91
|
-
threads
|
|
92
|
-
} = result;
|
|
93
|
-
if (!Array.isArray(threads)) {
|
|
94
|
-
throw new Error('handleCustomListRoute result must contain a "threads" array ' + '(https://www.inboxsdk.com/docs/#Router).');
|
|
68
|
+
if (Array.isArray(result)) {
|
|
69
|
+
logger.deprecationWarning('Returning an array from a handleCustomListRoute handler', 'a CustomListDescriptor object');
|
|
70
|
+
const threads = copyAndOmitExcessThreads(result, logger);
|
|
71
|
+
return {
|
|
72
|
+
// default to one page since arrays can't be paginated
|
|
73
|
+
total: threads.length,
|
|
74
|
+
threads,
|
|
75
|
+
};
|
|
95
76
|
}
|
|
96
|
-
if (
|
|
97
|
-
|
|
77
|
+
else if (typeof result === 'object') {
|
|
78
|
+
const { total, hasMore, threads } = result;
|
|
79
|
+
if (!Array.isArray(threads)) {
|
|
80
|
+
throw new Error('handleCustomListRoute result must contain a "threads" array ' +
|
|
81
|
+
'(https://www.inboxsdk.com/docs/#Router).');
|
|
82
|
+
}
|
|
83
|
+
if (total != null && hasMore != null) {
|
|
84
|
+
throw new Error('handleCustomListRoute result must only contain either ' +
|
|
85
|
+
'a "total" or a "hasMore" property, but not both. ' +
|
|
86
|
+
'(https://www.inboxsdk.com/docs/#Router).');
|
|
87
|
+
}
|
|
88
|
+
if (typeof total === 'number') {
|
|
89
|
+
return {
|
|
90
|
+
total,
|
|
91
|
+
threads: copyAndOmitExcessThreads(threads, logger),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
else if (typeof hasMore === 'boolean') {
|
|
95
|
+
const threadsWithoutExcess = copyAndOmitExcessThreads(threads, logger);
|
|
96
|
+
return {
|
|
97
|
+
total: hasMore ? 'MANY' : start + threads.length,
|
|
98
|
+
threads: threadsWithoutExcess,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
throw new Error('handleCustomListRoute result must contain either a "total" number ' +
|
|
103
|
+
'or a "hasMore" boolean (https://www.inboxsdk.com/docs/#Router).');
|
|
104
|
+
}
|
|
98
105
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
threads: copyAndOmitExcessThreads(threads, logger)
|
|
103
|
-
};
|
|
104
|
-
} else if (typeof hasMore === 'boolean') {
|
|
105
|
-
const threadsWithoutExcess = copyAndOmitExcessThreads(threads, logger);
|
|
106
|
-
return {
|
|
107
|
-
total: hasMore ? 'MANY' : start + threads.length,
|
|
108
|
-
threads: threadsWithoutExcess
|
|
109
|
-
};
|
|
110
|
-
} else {
|
|
111
|
-
throw new Error('handleCustomListRoute result must contain either a "total" number ' + 'or a "hasMore" boolean (https://www.inboxsdk.com/docs/#Router).');
|
|
106
|
+
else {
|
|
107
|
+
throw new Error('handleCustomListRoute result must be an array or an object ' +
|
|
108
|
+
'(https://www.inboxsdk.com/docs/#Router).');
|
|
112
109
|
}
|
|
113
|
-
} else {
|
|
114
|
-
throw new Error('handleCustomListRoute result must be an array or an object ' + '(https://www.inboxsdk.com/docs/#Router).');
|
|
115
|
-
}
|
|
116
110
|
}
|
|
117
111
|
function threadDescriptorToInitialIDPair(id) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
gtid: id
|
|
126
|
-
};
|
|
112
|
+
if (typeof id === 'string') {
|
|
113
|
+
if (id[0] == '<') {
|
|
114
|
+
return { rfcId: id };
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return { gtid: id };
|
|
118
|
+
}
|
|
127
119
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
120
|
+
else if (id) {
|
|
121
|
+
const obj = {
|
|
122
|
+
gtid: typeof id.gmailThreadId === 'string' && id.gmailThreadId,
|
|
123
|
+
rfcId: typeof id.rfcMessageId === 'string' && id.rfcMessageId,
|
|
124
|
+
};
|
|
125
|
+
if (obj.gtid || obj.rfcId) {
|
|
126
|
+
return obj;
|
|
127
|
+
}
|
|
135
128
|
}
|
|
136
|
-
}
|
|
137
129
|
}
|
|
138
130
|
function initialIDPairToIDPairWithRFC(driver, pair, findIdFailure) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
throw new Error('Should not happen');
|
|
131
|
+
if (typeof pair.rfcId === 'string') {
|
|
132
|
+
return Promise.resolve(pair);
|
|
133
|
+
}
|
|
134
|
+
else if (typeof pair.gtid === 'string') {
|
|
135
|
+
const gtid = pair.gtid;
|
|
136
|
+
return driver.getRfcMessageIdForGmailThreadId(gtid).then((rfcId) => ({ gtid, rfcId }), (err) => findIdFailure(gtid, err));
|
|
137
|
+
}
|
|
138
|
+
throw new Error('Should not happen');
|
|
149
139
|
}
|
|
150
140
|
function idPairWithRFCToCompletedIDPair(driver, pair, findIdFailure) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}), err => findIdFailure(pair.rfcId, err));
|
|
141
|
+
return typeof pair.gtid === 'string'
|
|
142
|
+
? Promise.resolve(pair)
|
|
143
|
+
: driver.getGmailThreadIdForRfcMessageId(pair.rfcId).then((gtid) => ({ gtid, rfcId: pair.rfcId }), (err) => findIdFailure(pair.rfcId, err));
|
|
155
144
|
}
|
|
156
|
-
|
|
157
145
|
// Returns the search string that will trigger the onActivate function.
|
|
158
146
|
const setupSearchReplacing = (driver, customRouteID, onActivate, findIdFailure) => {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
147
|
+
const preexistingQuery = threadListHandlersToSearchStrings.get(onActivate);
|
|
148
|
+
if (preexistingQuery) {
|
|
149
|
+
return preexistingQuery;
|
|
150
|
+
}
|
|
151
|
+
const newQuery = Date.now() + '-' + Math.random();
|
|
152
|
+
driver.getPageCommunicator().setupCustomListResultsQuery(newQuery);
|
|
153
|
+
driver
|
|
154
|
+
.getPageCommunicator()
|
|
155
|
+
.ajaxInterceptStream.filter((e) => e.type === 'searchForReplacement' && e.query === newQuery)
|
|
156
|
+
.onValue(({ start }) => {
|
|
157
|
+
(async () => {
|
|
158
|
+
driver.signalCustomThreadListActivity(customRouteID);
|
|
159
|
+
let total;
|
|
160
|
+
let threadDescriptors;
|
|
161
|
+
try {
|
|
162
|
+
const onActivateResult = await Promise.resolve(onActivate(start, MAX_THREADS_PER_PAGE));
|
|
163
|
+
const parsed = parseOnActivateResult(driver.getLogger(), start, onActivateResult);
|
|
164
|
+
total = parsed.total;
|
|
165
|
+
threadDescriptors = parsed.threads;
|
|
166
|
+
}
|
|
167
|
+
catch (e) {
|
|
168
|
+
driver.getLogger().error(e);
|
|
169
|
+
total = 0;
|
|
170
|
+
threadDescriptors = [];
|
|
171
|
+
}
|
|
172
|
+
const initialIDPairs = threadDescriptors
|
|
173
|
+
.map(threadDescriptorToInitialIDPair)
|
|
174
|
+
.filter(Boolean);
|
|
175
|
+
const idPairsWithRFC = (await Promise.all(initialIDPairs.map((pair) => initialIDPairToIDPairWithRFC(driver, pair, findIdFailure)))).filter(Boolean);
|
|
176
|
+
const messageIDQuery = idPairsWithRFC.length > 0
|
|
177
|
+
? idPairsWithRFC
|
|
178
|
+
.map(({ rfcId }) => 'rfc822msgid:' + rfcId)
|
|
179
|
+
.join(' OR ')
|
|
180
|
+
: '' + Math.random() + Date.now(); // google doesn't like empty searches
|
|
181
|
+
// Outgoing requests for list queries always need to have a `start` of 0,
|
|
182
|
+
// because we only ever ask for 1 page-worth of threads per query.
|
|
183
|
+
// When the response comes back, we modify it to have a `start` consistent
|
|
184
|
+
// with whatever page was being loaded so Gmail's UI makes sense.
|
|
185
|
+
driver.getPageCommunicator().setCustomListNewQuery({
|
|
186
|
+
newQuery: messageIDQuery,
|
|
187
|
+
newStart: 0,
|
|
188
|
+
query: newQuery,
|
|
189
|
+
start,
|
|
190
|
+
});
|
|
191
|
+
const searchResultsResponse_promise = driver
|
|
192
|
+
.getPageCommunicator()
|
|
193
|
+
.ajaxInterceptStream.filter((e) => e.type === 'searchResultsResponse' &&
|
|
194
|
+
e.query === newQuery &&
|
|
195
|
+
e.start === start)
|
|
196
|
+
.map((x) => x.response)
|
|
197
|
+
.take(1)
|
|
198
|
+
.toPromise();
|
|
199
|
+
// Figure out any gmail thread ids we don't know yet.
|
|
200
|
+
const completedIDPairs = (await Promise.all(idPairsWithRFC.map((pair) => idPairWithRFCToCompletedIDPair(driver, pair, findIdFailure)))).filter(Boolean);
|
|
201
|
+
const response = await searchResultsResponse_promise;
|
|
202
|
+
driver.signalCustomThreadListActivity(customRouteID);
|
|
203
|
+
// override thread list response so that we show results in the same
|
|
204
|
+
// order that user passed in
|
|
205
|
+
let newResponse;
|
|
206
|
+
try {
|
|
207
|
+
if (driver.isUsingSyncAPI()) {
|
|
208
|
+
const extractedThreads = SyncGRP.extractThreadsFromSearchResponse(response);
|
|
209
|
+
const extractedThreadsInCompletedIDPairsOrder = completedIDPairs
|
|
210
|
+
.map(({ gtid }) => find(extractedThreads, (t) => t.oldGmailThreadID === gtid))
|
|
211
|
+
.filter(Boolean);
|
|
212
|
+
const doesNeedReorder = extractedThreads.length !==
|
|
213
|
+
extractedThreadsInCompletedIDPairsOrder.length ||
|
|
214
|
+
extractedThreads.some((extractedThread, index) => extractedThread !==
|
|
215
|
+
extractedThreadsInCompletedIDPairsOrder[index]);
|
|
216
|
+
let reorderedThreads;
|
|
217
|
+
if (doesNeedReorder) {
|
|
218
|
+
const now = Date.now();
|
|
219
|
+
reorderedThreads = extractedThreadsInCompletedIDPairsOrder.map((extractedThread, index) => {
|
|
220
|
+
const newFormat = Array.isArray(extractedThread.rawResponse);
|
|
221
|
+
const newTime = String(now - index);
|
|
222
|
+
let newThread = update(extractedThread, {
|
|
223
|
+
rawResponse: newFormat
|
|
224
|
+
? {
|
|
225
|
+
'0': {
|
|
226
|
+
'2': { $set: newTime },
|
|
227
|
+
'7': { $set: newTime },
|
|
228
|
+
},
|
|
229
|
+
}
|
|
230
|
+
: {
|
|
231
|
+
'1': {
|
|
232
|
+
'3': { $set: newTime },
|
|
233
|
+
'8': { $set: newTime },
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
if (newFormat
|
|
238
|
+
? extractedThread.rawResponse[0][4]
|
|
239
|
+
: extractedThread.rawResponse[1][5]) {
|
|
240
|
+
newThread = update(newThread, {
|
|
241
|
+
rawResponse: newFormat
|
|
242
|
+
? {
|
|
243
|
+
'0': {
|
|
244
|
+
'4': (oldVal) => oldVal.map((md) => ({
|
|
245
|
+
...md,
|
|
246
|
+
'6': newTime,
|
|
247
|
+
'17': newTime,
|
|
248
|
+
'30': newTime,
|
|
249
|
+
})),
|
|
250
|
+
},
|
|
251
|
+
}
|
|
252
|
+
: {
|
|
253
|
+
'1': {
|
|
254
|
+
'5': (oldVal) => oldVal.map((md) => ({
|
|
255
|
+
...md,
|
|
256
|
+
'7': newTime,
|
|
257
|
+
'18': newTime,
|
|
258
|
+
'31': newTime,
|
|
259
|
+
})),
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
return newThread;
|
|
265
|
+
});
|
|
236
266
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
'1': {
|
|
240
|
-
'3': {
|
|
241
|
-
$set: newTime
|
|
242
|
-
},
|
|
243
|
-
'8': {
|
|
244
|
-
$set: newTime
|
|
267
|
+
else {
|
|
268
|
+
reorderedThreads = extractedThreads;
|
|
245
269
|
}
|
|
246
|
-
|
|
270
|
+
newResponse = SyncGRP.replaceThreadsInSearchResponse(response, reorderedThreads, { start, total });
|
|
247
271
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
272
|
+
else {
|
|
273
|
+
const extractedThreads = GRP.extractThreads(response);
|
|
274
|
+
const reorderedThreads = completedIDPairs
|
|
275
|
+
.map(({ gtid }) => find(extractedThreads, (t) => t.gmailThreadId === gtid))
|
|
276
|
+
.filter(Boolean);
|
|
277
|
+
newResponse = GRP.replaceThreadsInResponse(response, reorderedThreads, { start, total });
|
|
278
|
+
}
|
|
279
|
+
driver
|
|
280
|
+
.getPageCommunicator()
|
|
281
|
+
.setCustomListResults(newQuery, newResponse);
|
|
282
|
+
}
|
|
283
|
+
catch (e) {
|
|
284
|
+
driver.getLogger().error(e, {
|
|
285
|
+
responseReplacementFailure: true,
|
|
286
|
+
//response: isStreakAppId(driver.getAppId()) ? response : null,
|
|
287
|
+
idPairsLength: completedIDPairs.length,
|
|
288
|
+
});
|
|
289
|
+
const butterBar = driver.getButterBar();
|
|
290
|
+
if (butterBar) {
|
|
291
|
+
butterBar.showError({
|
|
292
|
+
text: 'Failed to load custom thread list',
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
try {
|
|
296
|
+
if (driver.isUsingSyncAPI()) {
|
|
297
|
+
driver.getPageCommunicator().setCustomListResults(newQuery, SyncGRP.replaceThreadsInSearchResponse(response, [], {
|
|
298
|
+
start,
|
|
299
|
+
total,
|
|
300
|
+
}));
|
|
259
301
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
'7': newTime,
|
|
265
|
-
'18': newTime,
|
|
266
|
-
'31': newTime
|
|
267
|
-
}))
|
|
302
|
+
else {
|
|
303
|
+
driver
|
|
304
|
+
.getPageCommunicator()
|
|
305
|
+
.setCustomListResults(newQuery, GRP.replaceThreadsInResponse(response, [], { start, total }));
|
|
268
306
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
//response: isStreakAppId(driver.getAppId()) ? response : null,
|
|
299
|
-
idPairsLength: completedIDPairs.length
|
|
300
|
-
});
|
|
301
|
-
const butterBar = driver.getButterBar();
|
|
302
|
-
if (butterBar) {
|
|
303
|
-
butterBar.showError({
|
|
304
|
-
text: 'Failed to load custom thread list'
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
try {
|
|
308
|
-
if (driver.isUsingSyncAPI()) {
|
|
309
|
-
driver.getPageCommunicator().setCustomListResults(newQuery, SyncGRP.replaceThreadsInSearchResponse(response, [], {
|
|
310
|
-
start,
|
|
311
|
-
total
|
|
312
|
-
}));
|
|
313
|
-
} else {
|
|
314
|
-
driver.getPageCommunicator().setCustomListResults(newQuery, GRP.replaceThreadsInResponse(response, [], {
|
|
315
|
-
start,
|
|
316
|
-
total
|
|
317
|
-
}));
|
|
318
|
-
}
|
|
319
|
-
} catch (e2) {
|
|
320
|
-
driver.getLogger().error(e2);
|
|
321
|
-
// The original response will be used.
|
|
322
|
-
driver.getPageCommunicator().setCustomListResults(newQuery, null);
|
|
323
|
-
}
|
|
324
|
-
return;
|
|
325
|
-
}
|
|
326
|
-
setTimeout(() => {
|
|
327
|
-
const errorBar = document.querySelector('.vY .vX.UC');
|
|
328
|
-
if (errorBar && errorBar.style.display !== 'none' && /#\d+/.test(errorBar.textContent)) {
|
|
329
|
-
const isStreak = (0, _isStreakAppId.default)(driver.getAppId());
|
|
330
|
-
driver.getLogger().error(new Error('Gmail error with custom thread list'), {
|
|
331
|
-
message: errorBar.textContent,
|
|
332
|
-
completedIDPairsLength: completedIDPairs.length,
|
|
333
|
-
response: isStreak ? response : null,
|
|
334
|
-
newResponse: isStreak ? newResponse : null
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
}, 1000);
|
|
338
|
-
})().catch(err => driver.getLogger().error(err));
|
|
339
|
-
});
|
|
340
|
-
driver.getCustomListSearchStringsToRouteIds().set(newQuery, customRouteID);
|
|
341
|
-
threadListHandlersToSearchStrings.set(onActivate, newQuery);
|
|
342
|
-
return newQuery;
|
|
307
|
+
}
|
|
308
|
+
catch (e2) {
|
|
309
|
+
driver.getLogger().error(e2);
|
|
310
|
+
// The original response will be used.
|
|
311
|
+
driver.getPageCommunicator().setCustomListResults(newQuery, null);
|
|
312
|
+
}
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
setTimeout(() => {
|
|
316
|
+
const errorBar = document.querySelector('.vY .vX.UC');
|
|
317
|
+
if (errorBar &&
|
|
318
|
+
errorBar.style.display !== 'none' &&
|
|
319
|
+
/#\d+/.test(errorBar.textContent)) {
|
|
320
|
+
const isStreak = isStreakAppId(driver.getAppId());
|
|
321
|
+
driver
|
|
322
|
+
.getLogger()
|
|
323
|
+
.error(new Error('Gmail error with custom thread list'), {
|
|
324
|
+
message: errorBar.textContent,
|
|
325
|
+
completedIDPairsLength: completedIDPairs.length,
|
|
326
|
+
response: isStreak ? response : null,
|
|
327
|
+
newResponse: isStreak ? newResponse : null,
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
}, 1000);
|
|
331
|
+
})().catch((err) => driver.getLogger().error(err));
|
|
332
|
+
});
|
|
333
|
+
driver.getCustomListSearchStringsToRouteIds().set(newQuery, customRouteID);
|
|
334
|
+
threadListHandlersToSearchStrings.set(onActivate, newQuery);
|
|
335
|
+
return newQuery;
|
|
343
336
|
};
|
|
344
|
-
function showCustomThreadList(driver, customRouteID, onActivate, params) {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
}
|
|
337
|
+
export default function showCustomThreadList(driver, customRouteID, onActivate, params, findIdFailure = _findIdFailure) {
|
|
338
|
+
const uniqueSearch = setupSearchReplacing(driver, customRouteID, onActivate, findIdFailure);
|
|
339
|
+
const customHash = document.location.hash;
|
|
340
|
+
const nextMainContentElementChange = GmailElementGetter.getMainContentElementChangedStream().changes().take(1);
|
|
341
|
+
const searchInput = GmailElementGetter.getSearchInput();
|
|
342
|
+
if (!searchInput)
|
|
343
|
+
throw new Error('could not find search input');
|
|
344
|
+
searchInput.value = '';
|
|
345
|
+
searchInput.style.visibility = 'hidden';
|
|
346
|
+
nextMainContentElementChange.onValue(() => {
|
|
347
|
+
// setup-route-view-driver-stream handles clearing search again
|
|
348
|
+
searchInput.style.visibility = 'visible';
|
|
349
|
+
});
|
|
350
|
+
// Change the hash *without* making a new history entry.
|
|
351
|
+
const searchHash = '#search/' + [uniqueSearch, ...params].map(encodeURIComponent).join('/');
|
|
352
|
+
window.history.replaceState(null, null, searchHash);
|
|
353
|
+
// Create a hashchange event so setup-route-view-driver-stream sees this event.
|
|
354
|
+
const hce = new window.HashChangeEvent('hashchange', {
|
|
355
|
+
oldURL: document.location.href.replace(/#.*$/, '') + customHash,
|
|
356
|
+
newURL: document.location.href.replace(/#.*$/, '') + searchHash,
|
|
357
|
+
});
|
|
358
|
+
window.dispatchEvent(hce);
|
|
359
|
+
}
|
package/src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show-native-route-view.d.ts","sourceRoot":"","sources":["../../../../../../../src/platform-implementation-js/dom-driver/gmail/gmail-driver/show-native-route-view.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,YAAY,EAAE,WAAW,QAqBpE"}
|