@getuserfeedback/react-native 1.3.6 → 1.3.7
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/dist/index.js +14 -21
- package/dist/provider-message-queue.d.ts +11 -0
- package/dist/provider-message-queue.js +23 -0
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ import { createContext, createElement, useCallback, useContext, useEffect, useMe
|
|
|
15
15
|
import { useResolvedHostViewport } from "./host-viewport.js";
|
|
16
16
|
import { toCommandFlowId, toCommandSettlementError, toRetryWithoutFlowHandle, } from "./provider-command-helpers.js";
|
|
17
17
|
import { clearProviderFlowHandleCache, createProviderFlowHandleCache, deleteCachedProviderFlowHandleId, deleteCachedProviderFlowId, getCachedProviderFlowHandleId, snapshotProviderFlowCommand, writeSettledProviderFlowHandleId, } from "./provider-flow-handle-cache.js";
|
|
18
|
+
import { enqueueProviderNativeMessage, removeProviderNativeMessageId, removeProviderNativeMessageIds, replaceProviderNativeMessages, } from "./provider-message-queue.js";
|
|
18
19
|
import { applyProviderOverlayFlowState, applyProviderOverlayHandleInvalidated, createDefaultProviderOverlayState, DEFAULT_PROVIDER_OVERLAY_VISIBILITY, updateProviderOverlayReadySequence, } from "./provider-overlay-state.js";
|
|
19
20
|
import { ProviderWidgetHostOverlay, toProviderWidgetHostStyle, toProviderWidgetSheetHostViewport, } from "./provider-widget-host-overlay.js";
|
|
20
21
|
import { REACT_NATIVE_SDK_VERSION } from "./version.js";
|
|
@@ -170,7 +171,7 @@ export function GetUserFeedbackProvider({ autoInit = true, children, commandTime
|
|
|
170
171
|
if (pendingCommand.isStartup) {
|
|
171
172
|
startupQueuedKeyRef.current = null;
|
|
172
173
|
}
|
|
173
|
-
setNativeMessages((messages) => messages
|
|
174
|
+
setNativeMessages((messages) => removeProviderNativeMessageId(messages, pendingCommand.messageId));
|
|
174
175
|
pendingCommand.reject(error);
|
|
175
176
|
}, []);
|
|
176
177
|
const startPendingCommandTimeout = useCallback((requestId, pendingCommand) => {
|
|
@@ -248,23 +249,15 @@ export function GetUserFeedbackProvider({ autoInit = true, children, commandTime
|
|
|
248
249
|
startPendingCommandTimeout(requestId, pendingCommandsRef.current.get(requestId));
|
|
249
250
|
}
|
|
250
251
|
});
|
|
251
|
-
setNativeMessages((messages) => {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return [...messages, validatedMessage];
|
|
261
|
-
}
|
|
262
|
-
return [
|
|
263
|
-
...messages.slice(0, firstActionIndex),
|
|
264
|
-
validatedMessage,
|
|
265
|
-
...messages.slice(firstActionIndex),
|
|
266
|
-
];
|
|
267
|
-
});
|
|
252
|
+
setNativeMessages((messages) => enqueueProviderNativeMessage(messages, {
|
|
253
|
+
isStartup,
|
|
254
|
+
isStartupMessage: (entry) => {
|
|
255
|
+
var _a;
|
|
256
|
+
return ((_a = pendingCommandsRef.current.get(entry.envelope.requestId)) === null || _a === void 0 ? void 0 : _a.isStartup) === true;
|
|
257
|
+
},
|
|
258
|
+
message: validatedMessage,
|
|
259
|
+
prioritizeStartup,
|
|
260
|
+
}));
|
|
268
261
|
return promise;
|
|
269
262
|
}, [instanceId, startPendingCommandTimeout]);
|
|
270
263
|
const reissueDeliveredPendingActionCommands = useCallback(() => {
|
|
@@ -302,7 +295,7 @@ export function GetUserFeedbackProvider({ autoInit = true, children, commandTime
|
|
|
302
295
|
if (replacements.size === 0) {
|
|
303
296
|
return false;
|
|
304
297
|
}
|
|
305
|
-
setNativeMessages((messages) => messages
|
|
298
|
+
setNativeMessages((messages) => replaceProviderNativeMessages(messages, replacements));
|
|
306
299
|
return true;
|
|
307
300
|
}, []);
|
|
308
301
|
const cancelPendingStartupCommands = useCallback(() => {
|
|
@@ -321,7 +314,7 @@ export function GetUserFeedbackProvider({ autoInit = true, children, commandTime
|
|
|
321
314
|
if (canceledMessageIds.size === 0) {
|
|
322
315
|
return;
|
|
323
316
|
}
|
|
324
|
-
setNativeMessages((messages) => messages
|
|
317
|
+
setNativeMessages((messages) => removeProviderNativeMessageIds(messages, canceledMessageIds));
|
|
325
318
|
}, []);
|
|
326
319
|
const enqueueStartupCommands = useCallback(({ force = false } = {}) => {
|
|
327
320
|
if (!autoInit) {
|
|
@@ -472,7 +465,7 @@ export function GetUserFeedbackProvider({ autoInit = true, children, commandTime
|
|
|
472
465
|
return;
|
|
473
466
|
}
|
|
474
467
|
pendingCommandsRef.current.delete(requestId);
|
|
475
|
-
setNativeMessages((messages) => messages
|
|
468
|
+
setNativeMessages((messages) => removeProviderNativeMessageId(messages, pendingCommand.messageId));
|
|
476
469
|
if (pendingCommand.timeout) {
|
|
477
470
|
clearTimeout(pendingCommand.timeout);
|
|
478
471
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WebViewTransportNativeMessage } from "@getuserfeedback/protocol/webview-transport";
|
|
2
|
+
export type ProviderNativeMessageQueue = readonly WebViewTransportNativeMessage[];
|
|
3
|
+
export declare function enqueueProviderNativeMessage(messages: ProviderNativeMessageQueue, { isStartup, isStartupMessage, message, prioritizeStartup, }: {
|
|
4
|
+
isStartup: boolean;
|
|
5
|
+
isStartupMessage: (message: WebViewTransportNativeMessage) => boolean;
|
|
6
|
+
message: WebViewTransportNativeMessage;
|
|
7
|
+
prioritizeStartup: boolean;
|
|
8
|
+
}): WebViewTransportNativeMessage[];
|
|
9
|
+
export declare function removeProviderNativeMessageIds(messages: ProviderNativeMessageQueue, messageIds: ReadonlySet<string>): WebViewTransportNativeMessage[];
|
|
10
|
+
export declare function removeProviderNativeMessageId(messages: ProviderNativeMessageQueue, messageId: string): WebViewTransportNativeMessage[];
|
|
11
|
+
export declare function replaceProviderNativeMessages(messages: ProviderNativeMessageQueue, replacementsByMessageId: ReadonlyMap<string, WebViewTransportNativeMessage>): WebViewTransportNativeMessage[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function enqueueProviderNativeMessage(messages, { isStartup, isStartupMessage, message, prioritizeStartup, }) {
|
|
2
|
+
if (!(isStartup && prioritizeStartup)) {
|
|
3
|
+
return [...messages, message];
|
|
4
|
+
}
|
|
5
|
+
const firstActionIndex = messages.findIndex((entry) => !isStartupMessage(entry));
|
|
6
|
+
if (firstActionIndex === -1) {
|
|
7
|
+
return [...messages, message];
|
|
8
|
+
}
|
|
9
|
+
return [
|
|
10
|
+
...messages.slice(0, firstActionIndex),
|
|
11
|
+
message,
|
|
12
|
+
...messages.slice(firstActionIndex),
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
export function removeProviderNativeMessageIds(messages, messageIds) {
|
|
16
|
+
return messages.filter((entry) => !messageIds.has(entry.id));
|
|
17
|
+
}
|
|
18
|
+
export function removeProviderNativeMessageId(messages, messageId) {
|
|
19
|
+
return removeProviderNativeMessageIds(messages, new Set([messageId]));
|
|
20
|
+
}
|
|
21
|
+
export function replaceProviderNativeMessages(messages, replacementsByMessageId) {
|
|
22
|
+
return messages.map((message) => { var _a; return (_a = replacementsByMessageId.get(message.id)) !== null && _a !== void 0 ? _a : message; });
|
|
23
|
+
}
|
package/dist/version.js
CHANGED
|
@@ -3,4 +3,4 @@ const reactNativeSdkVersion = typeof __GX_REACT_NATIVE_SDK_VERSION__ === "string
|
|
|
3
3
|
: "";
|
|
4
4
|
// Build scripts patch this fallback to the package version for published artifacts.
|
|
5
5
|
// Source-linked workspace usage keeps the local fallback.
|
|
6
|
-
export const REACT_NATIVE_SDK_VERSION = reactNativeSdkVersion.length > 0 ? reactNativeSdkVersion : "1.3.
|
|
6
|
+
export const REACT_NATIVE_SDK_VERSION = reactNativeSdkVersion.length > 0 ? reactNativeSdkVersion : "1.3.7";
|