From c593852ab8186648031f7d8851d31028603df9de Mon Sep 17 00:00:00 2001 From: Ry Racherbaumer Date: Tue, 5 Sep 2023 10:21:04 -0500 Subject: [PATCH 1/2] Prevent DB versioning when DB is already open --- packages/react-sdk/src/helpers/caching/db.ts | 75 ++++++++++---------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/packages/react-sdk/src/helpers/caching/db.ts b/packages/react-sdk/src/helpers/caching/db.ts index b5d1e724..35237e60 100644 --- a/packages/react-sdk/src/helpers/caching/db.ts +++ b/packages/react-sdk/src/helpers/caching/db.ts @@ -75,42 +75,45 @@ export type GetDBInstanceOptions = { export const getDbInstance = (options?: GetDBInstanceOptions) => { const db = options?.db ?? new Dexie("__XMTP__"); - // note that duplicate keys will be overwritten - const customSchema = options?.contentTypeConfigs?.reduce( - (result, { schema }) => ({ - ...result, - ...schema, - }), - {} as Record, - ); - - const version = options?.version ?? 1; - - db.version(version).stores({ - ...customSchema, - conversations: ` - ++id, - [topic+walletAddress], - createdAt, - peerAddress, - topic, - updatedAt, - walletAddress - `, - messages: ` - ++id, - [conversationTopic+walletAddress], - contentFallback, - contentType, - conversationTopic, - senderAddress, - sentAt, - status, - uuid, - walletAddress, - xmtpID - `, - }); + // do not attempt to version the db if it is already open + if (!db.isOpen()) { + // note that duplicate keys will be overwritten + const customSchema = options?.contentTypeConfigs?.reduce( + (result, { schema }) => ({ + ...result, + ...schema, + }), + {} as Record, + ); + + const version = options?.version ?? 1; + + db.version(version).stores({ + ...customSchema, + conversations: ` + ++id, + [topic+walletAddress], + createdAt, + peerAddress, + topic, + updatedAt, + walletAddress + `, + messages: ` + ++id, + [conversationTopic+walletAddress], + contentFallback, + contentType, + conversationTopic, + senderAddress, + sentAt, + status, + uuid, + walletAddress, + xmtpID + `, + }); + } return db; }; From 450a6b9ddaeee13606749ea0f7d8bf4385de6b16 Mon Sep 17 00:00:00 2001 From: Ry Racherbaumer Date: Tue, 5 Sep 2023 10:26:39 -0500 Subject: [PATCH 2/2] Create friendly-coins-confess.md --- .changeset/friendly-coins-confess.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/friendly-coins-confess.md diff --git a/.changeset/friendly-coins-confess.md b/.changeset/friendly-coins-confess.md new file mode 100644 index 00000000..2dedcec6 --- /dev/null +++ b/.changeset/friendly-coins-confess.md @@ -0,0 +1,5 @@ +--- +"@xmtp/react-sdk": patch +--- + +- Prevent DB versioning when DB is already open