fix: isolate attachment submission state
This commit is contained in:
@@ -702,10 +702,12 @@ export function createCodingConversationStore(
|
||||
};
|
||||
});
|
||||
|
||||
let attachmentsPrepared = !input.prepareAttachments;
|
||||
try {
|
||||
if (input.prepareAttachments) {
|
||||
submittedDraft.attachments = (await input.prepareAttachments())
|
||||
.map((attachment) => ({ ...attachment }));
|
||||
attachmentsPrepared = true;
|
||||
set((state) => {
|
||||
const currentEntry = state.entriesByConversationId[input.conversationId] ?? emptyEntry();
|
||||
const requests = state.requestsByConversationId[input.conversationId] ?? {};
|
||||
@@ -765,6 +767,7 @@ export function createCodingConversationStore(
|
||||
} catch (error) {
|
||||
const failure = errorDetails(error);
|
||||
const uncertain = failure.code === 'CODING_REQUEST_UNCERTAIN';
|
||||
const preSubmitFailure = !attachmentsPrepared;
|
||||
set((state) => {
|
||||
const currentEntry = state.entriesByConversationId[input.conversationId] ?? emptyEntry();
|
||||
const requests = state.requestsByConversationId[input.conversationId] ?? {};
|
||||
@@ -776,7 +779,11 @@ export function createCodingConversationStore(
|
||||
const reducer = uncertain
|
||||
? currentEntry.reducer
|
||||
: withRejectedNode(currentEntry.reducer, nodeId);
|
||||
const nextEntry = { ...currentEntry, reducer, error: failure.message };
|
||||
const nextEntry = {
|
||||
...currentEntry,
|
||||
reducer,
|
||||
error: preSubmitFailure ? currentEntry.error : failure.message,
|
||||
};
|
||||
return {
|
||||
entriesByConversationId: {
|
||||
...state.entriesByConversationId,
|
||||
|
||||
Reference in New Issue
Block a user