diff --git a/dist/index.js b/dist/index.js index 8213d1ae..f5b400c8 100644 --- a/dist/index.js +++ b/dist/index.js @@ -955,6 +955,14 @@ addObjectContent = (messageObject, content) => { messageObject.contentVersions[content.id] = content; }; + updateObjectContent = (messageObject, content) => { + const latest = this.getMostRecentContent(messageObject); + Object.entries(content).forEach((entry) => { + const [key, value] = entry; + latest[key] = value; + }); + this.addObjectContent(messageObject, latest); + }; addObject = (messageObject, ignoreIfUnchanged = false) => { const existingObject = this.objects.value.get(messageObject.id); if (existingObject) { @@ -1167,8 +1175,6 @@ ); var currentAddress = restoreState("current-address", ""); var previousAddresses = restoreListState("previous-addresses"); - previousAddresses.add("a", "a", "A"); - previousAddresses.add("a", "a", "A"); var cannotDisonnect = createProxyState( [isConnected], () => isConnected.value == false @@ -1648,8 +1654,9 @@ if (!id) return; const messageObject = chat.objects.value.get(id); if (!messageObject) return; - const latest = chat.getMostRecentContent(messageObject); - latest.categoryName = kanbanBoard.category; + const newContent = chat.createObjectContent(); + newContent.categoryName = kanbanBoard.category; + chat.updateObjectContent(messageObject, newContent); chat.addObjectAndSend(messageObject); } const itemToViewEntry = (kanbanBoardItem) => { @@ -1976,9 +1983,10 @@ if (!id) return; const messageObject = chat.objects.value.get(id); if (!messageObject) return; - const latest = chat.getMostRecentContent(messageObject); - latest.status = status; - latest.categoryName = category; + const newContent = chat.createObjectContent(); + newContent.categoryName = category; + newContent.status = status; + chat.updateObjectContent(messageObject, newContent); chat.addObjectAndSend(messageObject); } const cellItemToEntryView = (cellItem) => ObjectEntryView( diff --git a/src/Model/chatModel.ts b/src/Model/chatModel.ts index 9469b169..3615d850 100644 --- a/src/Model/chatModel.ts +++ b/src/Model/chatModel.ts @@ -334,7 +334,7 @@ export class Chat { return messageObject; }; - createObjectContent = () => { + createObjectContent = (): MessageObjectContent => { return { id: React.UUID(), isoDateVersionCreated: new Date().toISOString(), @@ -348,6 +348,18 @@ export class Chat { messageObject.contentVersions[content.id] = content; }; + updateObjectContent = ( + messageObject: MessageObject, + content: MessageObjectContent + ): void => { + const latest = this.getMostRecentContent(messageObject); + Object.entries(content).forEach((entry) => { + const [key, value] = entry; + latest[key] = value; + }); + this.addObjectContent(messageObject, latest); + }; + addObject = ( messageObject: MessageObject, ignoreIfUnchanged: boolean = false diff --git a/src/Views/Objects/kanbanView.tsx b/src/Views/Objects/kanbanView.tsx index 3eaada8c..0c4193ba 100644 --- a/src/Views/Objects/kanbanView.tsx +++ b/src/Views/Objects/kanbanView.tsx @@ -108,8 +108,9 @@ function KanbanBoardView( const messageObject = chat.objects.value.get(id); if (!messageObject) return; - const latest = chat.getMostRecentContent(messageObject); - latest.categoryName = kanbanBoard.category; + const newContent = chat.createObjectContent(); + newContent.categoryName = kanbanBoard.category; + chat.updateObjectContent(messageObject, newContent); chat.addObjectAndSend(messageObject); } diff --git a/src/Views/Objects/statusView.tsx b/src/Views/Objects/statusView.tsx index 2314627c..c0fb3cbd 100644 --- a/src/Views/Objects/statusView.tsx +++ b/src/Views/Objects/statusView.tsx @@ -230,9 +230,10 @@ function StatusColumnView( const messageObject = chat.objects.value.get(id); if (!messageObject) return; - const latest = chat.getMostRecentContent(messageObject); - latest.status = status; - latest.categoryName = category; + const newContent = chat.createObjectContent(); + newContent.categoryName = category; + newContent.status = status; + chat.updateObjectContent(messageObject, newContent); chat.addObjectAndSend(messageObject); }