clay-server 4.2.0-beta.2 → 4.2.0
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.
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
function sameId(a, b) { return String(a) === String(b); }
|
|
4
4
|
|
|
5
|
-
export function emptyQueue() { return { projectSlug: null, sessionId: null, revision: 0, paused: false, items: [], loading: false, error: "" }; }
|
|
5
|
+
export function emptyQueue() { return { projectSlug: null, sessionId: null, revision: 0, paused: false, items: [], loading: false, error: "", errorSource: null }; }
|
|
6
6
|
|
|
7
7
|
export function queueContext(state) {
|
|
8
8
|
state = state || {};
|
|
@@ -69,5 +69,6 @@ export function canonicalQueue(queue, result) {
|
|
|
69
69
|
items: Array.isArray(result.items) ? result.items : queue.items || [],
|
|
70
70
|
loading: false,
|
|
71
71
|
error: "",
|
|
72
|
+
errorSource: null,
|
|
72
73
|
};
|
|
73
74
|
}
|
|
@@ -73,7 +73,7 @@ function scheduleHydrationRetry(requestId) {
|
|
|
73
73
|
var requests = store.get('pendingMessageQueueRequests') || {};
|
|
74
74
|
if (!requests[requestId] || !sameContext(requests[requestId].context, context()) || !context().enabled) return;
|
|
75
75
|
forgetRequest(requestId);
|
|
76
|
-
store.set({ pendingMessageQueue: Object.assign({}, currentQueue(), { loading: false, error: "Queue refresh timed out. Retrying…" }) });
|
|
76
|
+
store.set({ pendingMessageQueue: Object.assign({}, currentQueue(), { loading: false, error: "Queue refresh timed out. Retrying…", errorSource: "hydration" }) });
|
|
77
77
|
requestPendingMessages(true);
|
|
78
78
|
});
|
|
79
79
|
}
|
|
@@ -85,10 +85,10 @@ export function requestPendingMessages(preserveError) {
|
|
|
85
85
|
var target = context();
|
|
86
86
|
if (!target.enabled) return false;
|
|
87
87
|
var requestId = rememberRequest("get");
|
|
88
|
-
store.set({ pendingMessageQueue: Object.assign({}, currentQueue(), { projectSlug: target.projectSlug, sessionId: target.sessionId, loading: true, error: preserveError ? currentQueue().error : "" }), pendingMessageQueueRecovery: true });
|
|
88
|
+
store.set({ pendingMessageQueue: Object.assign({}, currentQueue(), { projectSlug: target.projectSlug, sessionId: target.sessionId, loading: true, error: preserveError ? currentQueue().error : "", errorSource: preserveError ? currentQueue().errorSource : null }), pendingMessageQueueRecovery: true });
|
|
89
89
|
if (!send({ type: "pending_message_get", projectSlug: target.projectSlug, sessionId: target.sessionId, requestId: requestId })) {
|
|
90
90
|
forgetRequest(requestId);
|
|
91
|
-
store.set({ pendingMessageQueue: Object.assign({}, currentQueue(), { loading: false, error: "Queue connection unavailable" }) });
|
|
91
|
+
store.set({ pendingMessageQueue: Object.assign({}, currentQueue(), { loading: false, error: "Queue connection unavailable", errorSource: "hydration" }) });
|
|
92
92
|
retryHydration();
|
|
93
93
|
return false;
|
|
94
94
|
}
|
|
@@ -163,7 +163,7 @@ function editAfterQueueTransition(items) {
|
|
|
163
163
|
|
|
164
164
|
function conflict(request, error) {
|
|
165
165
|
var edit = store.get('pendingMessageQueueEdit');
|
|
166
|
-
var update = { pendingMessageQueue: Object.assign({}, currentQueue(), { loading: false, error: error || "Queue changed. Refreshed the latest order." }) };
|
|
166
|
+
var update = { pendingMessageQueue: Object.assign({}, currentQueue(), { loading: false, error: error || "Queue changed. Refreshed the latest order.", errorSource: "mutation" }) };
|
|
167
167
|
if (request && request.kind === "edit" && edit && edit.id === request.itemId) update.pendingMessageQueueEdit = Object.assign({}, edit, { error: error || "Queue changed. Review your edit and save again." });
|
|
168
168
|
store.set(update);
|
|
169
169
|
requestPendingMessages(true);
|
|
@@ -185,7 +185,7 @@ export function handlePendingMessageQueueMessage(msg) {
|
|
|
185
185
|
}
|
|
186
186
|
if (!result.ok) {
|
|
187
187
|
if (request.kind === "get") {
|
|
188
|
-
store.set({ pendingMessageQueue: Object.assign({}, currentQueue(), { loading: false, error: result.error || "Queue update failed" }) });
|
|
188
|
+
store.set({ pendingMessageQueue: Object.assign({}, currentQueue(), { loading: false, error: result.error || "Queue update failed", errorSource: "hydration" }) });
|
|
189
189
|
retryHydration();
|
|
190
190
|
return true;
|
|
191
191
|
}
|
|
@@ -224,7 +224,7 @@ export function handlePendingMessageQueueMessage(msg) {
|
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
226
|
var nextEdit = editAfterQueueTransition(items);
|
|
227
|
-
var update = { pendingMessageQueue: Object.assign({}, queue, { projectSlug: msg.projectSlug, sessionId: msg.sessionId, revision: Number(msg.revision) || queue.revision, paused: msg.paused === true, items: items, loading: false, error: "" }) };
|
|
227
|
+
var update = { pendingMessageQueue: Object.assign({}, queue, { projectSlug: msg.projectSlug, sessionId: msg.sessionId, revision: Number(msg.revision) || queue.revision, paused: msg.paused === true, items: items, loading: false, error: "", errorSource: null }) };
|
|
228
228
|
if (nextEdit) update.pendingMessageQueueEdit = nextEdit;
|
|
229
229
|
store.set(update);
|
|
230
230
|
return true;
|
|
@@ -376,7 +376,7 @@ function render() {
|
|
|
376
376
|
var items = activeQueueItems(queue.items);
|
|
377
377
|
var focus = captureFocus();
|
|
378
378
|
var recovering = !!store.get('pendingMessageQueueRecovery');
|
|
379
|
-
var visible = queueCanRender(queue, target) && (items.length > 0 || queue.
|
|
379
|
+
var visible = queueCanRender(queue, target) && (items.length > 0 || queue.errorSource === "mutation");
|
|
380
380
|
queueEl.classList.toggle("hidden", !visible);
|
|
381
381
|
if (!visible) { queueEl.innerHTML = ""; return; }
|
|
382
382
|
var html = '<div class="pending-message-head"><div><span class="pending-message-eyebrow">Next up</span><span class="pending-message-count">' + items.length + '</span></div>';
|
package/package.json
CHANGED