decord/alpha/source/modules/conjure/chat/conjureAttachmentDrafts.tsx
2026-10-09 10:00:15 +00:00

350 lines
11 KiB
TypeScript

// Module ID: 17175
// Function ID: 17176
// Name: conjureAttachmentDrafts
// Dependencies: [109, 4950, 13164, 1126, 3827, 6940, 558, 576, 584, 2]
// Exports: addConjureAttachmentDrafts, clearConjureAttachmentDrafts, conjureAttachmentTooLargeText, removeConjureAttachmentDraft, sendConjureCardReply, uploadConjureAttachment
// Module 17175 (conjureAttachmentDrafts)
import intl2 from "intl" /* 1126 */;
import _modDef3827 from "module_3827" /* 3827 */;
import ZustandStore from "ZustandStore" /* 4950 */;
import ConjureTypes from "ConjureTypes" /* 6940 */;
import _objectWithoutProperties from "_objectWithoutProperties" /* 109 */;
import ConjureConnectionStore from "ConjureConnectionStore" /* 13164 */;
import ReactCompilerGating from "ReactCompilerGating" /* 558 */;
import Dispatcher_mod from "Dispatcher" /* 584 */;
import size from "module_2" /* 2 */;
const require = globalThis.__r;
let _require, closure_10;
let hasOwnProperty;
let metroImportDefault;
let metroRequire;
const f128046 = () => {
};
function _toPropertyKey(obj) {
let StringResult = obj;
if (typeof obj === "object") {
StringResult = obj;
if (StringResult) {
const _Symbol = Symbol;
if (undefined !== obj[Symbol.toPrimitive]) {
const callResult = obj[Symbol.toPrimitive].call(obj, "string");
StringResult = callResult;
if (typeof callResult === "object") {
const _TypeError = TypeError;
const self = this;
const self2 = this;
const typeError = new TypeError("@@toPrimitive must return a primitive value.");
throw typeError;
}
} else {
const _String = String;
StringResult = String(obj);
}
}
}
let text = StringResult;
if (typeof StringResult !== "symbol") {
text = `${tmp}`;
}
return text;
}
function getConjureAttachmentDrafts(projectId, chat) {
const tmp = zustandStore.getState().draftsByProject[projectId];
let tmp2;
if (tmp != null) {
tmp2 = tmp[chat];
}
if (tmp2 == null) {
tmp2 = closure_9;
}
return tmp2;
}
function setDrafts(projectId, chat, items) {
let obj2;
const draftsByProject = zustandStore.getState().draftsByProject;
const obj = { draftsByProject: obj2 };
obj2 = {};
const setState = zustandStore.setState;
const merged = Object.assign(draftsByProject);
const obj3 = {};
const merged1 = Object.assign(draftsByProject[projectId]);
obj3[chat] = items;
obj2[projectId] = obj3;
setState(obj);
}
function discardDraft(projectId, item10010) {
if (null != item10010.previewUrl) {
const _URL = URL;
URL.revokeObjectURL(item10010.previewUrl);
}
if (null != item10010.ref) {
const promise = hasOwnProperty(projectId, item10010.ref.id);
promise.catch(f128046);
}
}
function discardProject(projectId, deleteFromWorker) {
deleteFromWorker = deleteFromWorker.deleteFromWorker;
const draftsByProject = zustandStore.getState().draftsByProject;
if (null != draftsByProject[projectId]) {
const _Object = Object;
const values = Object.values(tmp);
const iter = values[Symbol.iterator]();
let nextResult = iter.next();
while (iter !== undefined) {
if (nextResult == null) {
nextResult = closure_9;
}
for (const item10017 of nextResult) {
let tmp7 = item10017;
if (deleteFromWorker) {
let tmp13 = discardDraft(projectId, tmp7);
} else if (null != tmp7.previewUrl) {
let _URL = URL;
let revokeObjectURLResult = URL.revokeObjectURL(tmp7.previewUrl);
}
continue;
}
continue;
}
const items = [projectId];
const obj = { draftsByProject: _objectWithoutProperties(draftsByProject, items.map(_toPropertyKey)) };
zustandStore.setState(obj);
}
}
function takeConjureAttachmentRefs(projectId, chat) {
const arr = getConjureAttachmentDrafts(projectId, chat);
if (0 === arr.length) {
return [];
} else {
const iter = arr[Symbol.iterator]();
const nextResult = iter.next();
while (iter !== undefined) {
if (null != nextResult.previewUrl) {
let _URL = URL;
let revokeObjectURLResult = URL.revokeObjectURL(tmp7.previewUrl);
}
continue;
}
setDrafts(projectId, chat, closure_9);
return arr.flatMap((ref) => {
let items1;
if (null != ref.ref) {
const items = [ref.ref];
items1 = items;
} else {
items1 = [];
}
return items1;
});
}
}
let closure_3 = ["converted"];
const createZustandStore = ZustandStore.createZustandStore;
({ deleteStagedAttachment: hasOwnProperty, sendUserMessage: metroRequire, uploadAttachmentBytes: metroImportDefault } = ConjureConnectionStore);
let closure_9 = [];
let c10 = 1;
const zustandStore = createZustandStore(() => ({ draftsByProject: {} }));
let tmp4 = ReactCompilerGating.isReactCompilerEnabled() ? (function useConjureAttachmentDraftList(arg0, arg1) {
let closure_0;
_require = arg0;
let closure_1 = arg1;
const obj = require("react");
const cResult = obj.c(3);
if (cResult[0] === arg0) {
let tmp2;
if (cResult[1] === arg1) {
tmp2 = cResult[2];
}
return zustandStore.useState(tmp2);
}
const fn = function r(arg0) {
let tmp2;
if (arg0.draftsByProject[closure_0] != null) {
tmp2 = tmp[closure_1];
}
if (tmp2 == null) {
tmp2 = closure_9;
}
return tmp2;
};
cResult[0] = arg0;
cResult[1] = arg1;
cResult[2] = fn;
tmp2 = fn;
}) : (function useConjureAttachmentDraftList(arg0, arg1) {
let closure_0 = arg0;
let closure_1 = arg1;
return zustandStore.useState((arg0) => {
let tmp2;
if (arg0.draftsByProject[closure_0] != null) {
tmp2 = tmp[closure_1];
}
if (tmp2 == null) {
tmp2 = closure_9;
}
return tmp2;
});
});
function conjureAttachmentTooLargeText(contentType) {
let formatConjureAttachmentLimit;
let obj2;
const intl = intl2.intl;
const formatToPlainString = intl.formatToPlainString;
const obj = { size: formatConjureAttachmentLimit(obj2.conjureAttachmentLimit(contentType)) };
const JZ59Bo = _modDef3827.JZ59Bo;
formatConjureAttachmentLimit = ConjureTypes.formatConjureAttachmentLimit;
ConjureTypes;
obj2 = ConjureTypes;
return formatToPlainString(JZ59Bo, obj);
}
let Dispatcher = Dispatcher_mod;
const subscription = Dispatcher.subscribe("LOGOUT", () => {
const keys = Object.keys(zustandStore.getState().draftsByProject);
const tmp2 = keys[Symbol.iterator]();
while (tmp2 !== undefined) {
let tmp5 = discardProject(tmp3, { deleteFromWorker: true });
continue;
}
});
Dispatcher = Dispatcher_mod;
const subscription1 = Dispatcher.subscribe("CONJURE_PROJECT_DELETE_SUCCESS", (projectId) => {
discardProject(projectId.projectId, { deleteFromWorker: false });
});
const result = size.fileFinishedImporting("modules/conjure/chat/conjureAttachmentDrafts.tsx");
export const ConjureAttachmentDraftStore = zustandStore;
export { getConjureAttachmentDrafts };
export { conjureAttachmentTooLargeText };
export const uploadConjureAttachment = function uploadConjureAttachment(arg0, size, name, contentType) {
let JZ59Bo;
let formatConjureAttachmentLimit;
let formatToPlainString;
let obj3;
let resolveResult;
let tmpResult2;
const obj = ConjureTypes;
if (obj.isConjureAttachmentWithinLimit(size.size, contentType)) {
resolveResult = metroImportDefault(arg0, size, name, contentType);
} else {
const obj2 = { errorText: formatToPlainString(JZ59Bo, obj3) };
const intl = tmp(1126).intl;
formatToPlainString = intl.formatToPlainString;
obj3 = { size: formatConjureAttachmentLimit(tmpResult2.conjureAttachmentLimit(contentType)) };
JZ59Bo = _modDef3827.JZ59Bo;
formatConjureAttachmentLimit = ConjureTypes.formatConjureAttachmentLimit;
ConjureTypes;
tmpResult2 = ConjureTypes;
resolveResult = resolve(obj2);
}
return resolveResult;
};
export const useConjureAttachmentDraftList = tmp4;
export const addConjureAttachmentDrafts = function addConjureAttachmentDrafts(projectId, chat, mapped) {
let state;
let closure_0 = projectId;
let closure_1 = chat;
if (0 !== mapped.length) {
mapped = mapped.map((upload) => {
let obj2;
const obj = { draft: obj2, upload };
upload = upload.upload;
obj2 = { localId: +closure_10 };
const merged = Object.assign(upload.draft);
closure_10 = tmp2 + 1;
return obj;
});
let tmp4 = setDrafts;
const tmp5 = getConjureAttachmentDrafts;
const items = [];
let tmp6 = items;
const arraySpreadResult = HermesBuiltin.arraySpread(items, getConjureAttachmentDrafts(projectId, chat), 0);
HermesBuiltin.arraySpread(items, mapped.map((draft) => draft.draft), arraySpreadResult);
setDrafts(projectId, chat, items);
let tmp2 = mapped;
for (const item10006 of mapped) {
let upload = item10006.upload;
let tmp11Result = tmp11(item10006.draft);
continue;
}
}
};
export const removeConjureAttachmentDraft = function removeConjureAttachmentDraft(projectId, chat, arg2) {
let obj3;
let closure_0 = arg2;
const tmp = zustandStore.getState().draftsByProject[projectId];
let tmp2;
if (tmp != null) {
tmp2 = tmp[chat];
}
if (tmp2 == null) {
tmp2 = closure_9;
}
const found = tmp2.find((localId) => localId.localId === closure_0);
if (null != found) {
if (null != found.previewUrl) {
const _URL = URL;
URL.revokeObjectURL(found.previewUrl);
}
if (null != found.ref) {
const promise = hasOwnProperty(projectId, found.ref.id);
promise.catch(f128046);
}
const found1 = tmp2.filter((localId) => localId.localId !== closure_0);
const draftsByProject = obj.getState().draftsByProject;
const obj2 = { draftsByProject: obj3 };
obj3 = {};
const setState = obj.setState;
const merged = Object.assign(draftsByProject);
const obj4 = {};
const merged1 = Object.assign(draftsByProject[projectId]);
obj4[chat] = found1;
obj3[projectId] = obj4;
setState(obj2);
}
};
export const clearConjureAttachmentDrafts = function clearConjureAttachmentDrafts(projectId, chat) {
const arr = getConjureAttachmentDrafts(projectId, chat);
if (0 !== arr.length) {
for (const item10010 of arr) {
let tmp4 = discardDraft(projectId, item10010);
continue;
}
setDrafts(projectId, chat, closure_9);
}
};
export { takeConjureAttachmentRefs };
export const sendConjureCardReply = function sendConjureCardReply(projectId, implementation_prompt, arg2) {
let attachments;
let clarificationAnswers;
let obj = arg2;
if (arg2 === undefined) {
obj = {};
}
({ attachments, clarificationAnswers } = obj);
if (attachments === undefined) {
attachments = [];
}
const tmp2 = zustandStore.getState().draftsByProject[projectId];
let chat;
if (tmp2 != null) {
chat = tmp2.chat;
}
if (chat == null) {
chat = closure_9;
}
if (chat.length > 0) {
let items1;
if (chat.every((status) => "ready" === status.status)) {
items1 = takeConjureAttachmentRefs(projectId, "chat");
}
const items = [];
HermesBuiltin.arraySpread(items, items1, HermesBuiltin.arraySpread(items, attachments, 0));
const obj2 = { clarificationAnswers };
metroRequire(projectId, implementation_prompt, items, obj2);
}
items1 = [];
};