feat: make user made changes persistent after reload (#1387)
* feat: save user made changes persistent * fix: remove artifact from user message on the UI * fix: message Id generation fix
This commit is contained in:
@@ -42,6 +42,10 @@ const messageParser = new StreamingMessageParser({
|
||||
},
|
||||
},
|
||||
});
|
||||
const extractTextContent = (message: Message) =>
|
||||
Array.isArray(message.content)
|
||||
? (message.content.find((item) => item.type === 'text')?.text as string) || ''
|
||||
: message.content;
|
||||
|
||||
export function useMessageParser() {
|
||||
const [parsedMessages, setParsedMessages] = useState<{ [key: number]: string }>({});
|
||||
@@ -55,9 +59,8 @@ export function useMessageParser() {
|
||||
}
|
||||
|
||||
for (const [index, message] of messages.entries()) {
|
||||
if (message.role === 'assistant') {
|
||||
const newParsedContent = messageParser.parse(message.id, message.content);
|
||||
|
||||
if (message.role === 'assistant' || message.role === 'user') {
|
||||
const newParsedContent = messageParser.parse(message.id, extractTextContent(message));
|
||||
setParsedMessages((prevParsed) => ({
|
||||
...prevParsed,
|
||||
[index]: !reset ? (prevParsed[index] || '') + newParsedContent : newParsedContent,
|
||||
|
||||
@@ -75,6 +75,29 @@ export class FilesStore {
|
||||
getFileModifications() {
|
||||
return computeFileModifications(this.files.get(), this.#modifiedFiles);
|
||||
}
|
||||
getModifiedFiles() {
|
||||
let modifiedFiles: { [path: string]: File } | undefined = undefined;
|
||||
|
||||
for (const [filePath, originalContent] of this.#modifiedFiles) {
|
||||
const file = this.files.get()[filePath];
|
||||
|
||||
if (file?.type !== 'file') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (file.content === originalContent) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!modifiedFiles) {
|
||||
modifiedFiles = {};
|
||||
}
|
||||
|
||||
modifiedFiles[filePath] = file;
|
||||
}
|
||||
|
||||
return modifiedFiles;
|
||||
}
|
||||
|
||||
resetFileModifications() {
|
||||
this.#modifiedFiles.clear();
|
||||
|
||||
@@ -238,6 +238,9 @@ export class WorkbenchStore {
|
||||
getFileModifcations() {
|
||||
return this.#filesStore.getFileModifications();
|
||||
}
|
||||
getModifiedFiles() {
|
||||
return this.#filesStore.getModifiedFiles();
|
||||
}
|
||||
|
||||
resetAllFileModifications() {
|
||||
this.#filesStore.resetFileModifications();
|
||||
|
||||
Reference in New Issue
Block a user