From 5ad889e555a02ae63e59ee6c9766d57f829ff687 Mon Sep 17 00:00:00 2001 From: sharkiecodes Date: Thu, 10 Jul 2025 10:22:43 -0400 Subject: expanding --- .../views/nodes/chatbot/tools/ViewManipulator.ts | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/client/views/nodes/chatbot/tools/ViewManipulator.ts (limited to 'src/client/views/nodes/chatbot/tools/ViewManipulator.ts') diff --git a/src/client/views/nodes/chatbot/tools/ViewManipulator.ts b/src/client/views/nodes/chatbot/tools/ViewManipulator.ts new file mode 100644 index 000000000..67f183412 --- /dev/null +++ b/src/client/views/nodes/chatbot/tools/ViewManipulator.ts @@ -0,0 +1,33 @@ + + + + processGptResponse = (docView: DocumentView, textToDocMap: Map, gptOutput: string, questionType: GPTDocCommand) => + undoable(() => { + switch (questionType) { // reset collection based on question typefc + case GPTDocCommand.Sort: + docView.Document[docView.ComponentView?.fieldKey + '_sort'] = docSortings.Chat; + break; + case GPTDocCommand.Filter: + docView.ComponentView?.hasChildDocs?.().forEach(d => TagItem.removeTagFromDoc(d, GPTPopup.ChatTag)); + break; + } // prettier-ignore + + gptOutput.split(DescriptionSeperator).filter(item => item.trim() !== '') // Split output into individual document contents + .map(docContentRaw => docContentRaw.replace(/\n/g, ' ').trim()) + .map(docContentRaw => ({doc: textToDocMap.get(docContentRaw.split(DataSeperator)[0]), data: docContentRaw.split(DataSeperator)[1] })) // the find the corresponding Doc using textToDoc map + .filter(({doc}) => doc).map(({doc, data}) => ({doc:doc!, data})) // filter out undefined values + .forEach(({doc, data}, index) => { + switch (questionType) { + case GPTDocCommand.Sort: + doc[ChatSortField] = index; + break; + case GPTDocCommand.AssignTags: + data && TagItem.addTagToDoc(doc, data.startsWith('#') ? data : '#'+data[0].toLowerCase()+data.slice(1) ); + break; + case GPTDocCommand.Filter: + TagItem.addTagToDoc(doc, GPTPopup.ChatTag); + Doc.setDocFilter(docView.Document, 'tags', GPTPopup.ChatTag, 'check'); + break; + } + }); // prettier-ignore + }, '')(); -- cgit v1.2.3-70-g09d2