From df6506618011312af081a33516aaae8e92213a87 Mon Sep 17 00:00:00 2001 From: Basit Chonka Date: Tue, 11 Aug 2026 14:24:23 +0200 Subject: [PATCH 1/6] tab keys --- packages/compass-collection/src/components/collection-tab.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/compass-collection/src/components/collection-tab.tsx b/packages/compass-collection/src/components/collection-tab.tsx index 4b77c8ce4f1..1c22d0129db 100644 --- a/packages/compass-collection/src/components/collection-tab.tsx +++ b/packages/compass-collection/src/components/collection-tab.tsx @@ -286,8 +286,8 @@ const CollectionTabWithMetadata: React.FunctionComponent< return ; })} - {tabs.map(({ drawer }) => ( - <>{drawer} + {tabs.map(({ name, drawer }) => ( + {drawer} ))} ); From 2d8e7731c8dbb29867f09845f095df861dda49e6 Mon Sep 17 00:00:00 2001 From: Basit Chonka Date: Tue, 11 Aug 2026 14:24:40 +0200 Subject: [PATCH 2/6] do not pass anything down to the tab --- packages/compass-collection/src/plugin-tab-title.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/compass-collection/src/plugin-tab-title.tsx b/packages/compass-collection/src/plugin-tab-title.tsx index 4ca351eec42..1d8638fc3e1 100644 --- a/packages/compass-collection/src/plugin-tab-title.tsx +++ b/packages/compass-collection/src/plugin-tab-title.tsx @@ -29,6 +29,10 @@ function PluginTitle({ isTimeSeries, sourceName, namespace, + // The workspace props below are not valid DOM attributes and would end up + // on the tab element through the spread of the remaining props. + tabId: _tabId, + subTab: _subTab, ...tabProps }: PluginTitleProps) { const { getConnectionById } = useConnectionsListRef(); @@ -83,5 +87,7 @@ export const CollectionPluginTitleComponent = connect( isTimeSeries: state.metadata?.isTimeSeries, isReadonly: state.metadata?.isReadonly, sourceName: state.metadata?.sourceName, - }) + }), + // Passing an empty object so that dispatch is not passed down. + () => ({}) )(PluginTitle); From db4e2c6c5e3fb790a66fec1b1e8b03b79574333c Mon Sep 17 00:00:00 2001 From: Basit Chonka Date: Tue, 11 Aug 2026 14:24:52 +0200 Subject: [PATCH 3/6] supported styling --- .../src/components/resize-handle.tsx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/compass-components/src/components/resize-handle.tsx b/packages/compass-components/src/components/resize-handle.tsx index dcee8a3e26c..e9848dcff16 100644 --- a/packages/compass-components/src/components/resize-handle.tsx +++ b/packages/compass-components/src/components/resize-handle.tsx @@ -28,17 +28,14 @@ const baseResizerStyles = css({ opacity: 1, }, WebkitAppearance: 'none', - '&::-moz-range-thumb': { - width: 0, - height: 0, - }, '&::-webkit-slider-thumb': { WebkitAppearance: 'none', }, - '&::-ms-track': { - background: 'none', - borderColor: 'none', - color: 'none', + '@supports (-moz-appearance: none)': { + '&::-moz-range-thumb': { + width: 0, + height: 0, + }, }, }); From eb716ebb5438efaec6f2d9fe071debbbacc9ea82 Mon Sep 17 00:00:00 2001 From: Basit Chonka Date: Tue, 11 Aug 2026 14:26:08 +0200 Subject: [PATCH 4/6] tab unmount errors --- packages/databases-collections-list/src/items-table.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/databases-collections-list/src/items-table.tsx b/packages/databases-collections-list/src/items-table.tsx index 0e764e44608..5aa8cb8e8d6 100644 --- a/packages/databases-collections-list/src/items-table.tsx +++ b/packages/databases-collections-list/src/items-table.tsx @@ -536,6 +536,11 @@ export const VirtualItemsTable = ({ }, state: { sorting: sortState }, onSortingChange: setSortState, + // These tables are not paginated. Leaving this on makes react-table reset + // the page index in a queued microtask when sorting or data changes, which + // can land after the tab is closed and warn about setting state on an + // unmounted component. + autoResetPageIndex: false, }); const rowItems = mapVirtualRowItems(table); @@ -593,6 +598,8 @@ export const ItemsTable = ({ columns: columnsWithActions, state: { sorting: sortState }, onSortingChange: setSortState, + // See the note in VirtualItemsTable above. + autoResetPageIndex: false, }); const rowItems = mapRowItems(table); From fe2ce2dbbb029d804fcd0a6bbcd01508601bf17e Mon Sep 17 00:00:00 2001 From: Basit Chonka Date: Tue, 11 Aug 2026 14:26:45 +0200 Subject: [PATCH 5/6] use collectionModel instead of collection --- packages/compass-crud/src/stores/crud-store.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/compass-crud/src/stores/crud-store.ts b/packages/compass-crud/src/stores/crud-store.ts index 3f32de73e3c..a8c54d2ab36 100644 --- a/packages/compass-crud/src/stores/crud-store.ts +++ b/packages/compass-crud/src/stores/crud-store.ts @@ -396,7 +396,7 @@ class CrudStoreImpl instance: MongoDBInstance; connectionScopedAppRegistry: ConnectionScopedAppRegistry; queryBar: QueryBarService; - collection: Collection; + collectionModel: Collection; constructor( options: CrudStoreOptions & CrudStoreActionsOptions, @@ -432,7 +432,7 @@ class CrudStoreImpl this.fieldStoreService = services.fieldStoreService; this.connectionScopedAppRegistry = services.connectionScopedAppRegistry; this.queryBar = services.queryBar; - this.collection = services.collection; + this.collectionModel = services.collection; } getInitialState(): CrudState { @@ -471,7 +471,7 @@ class CrudStoreImpl isUpdatePreviewSupported: this.instance.topologyDescription.type !== 'Single', docsPerPage: this.getInitialDocsPerPage(), - collectionStats: extractCollectionStats(this.collection), + collectionStats: extractCollectionStats(this.collectionModel), }; } From f923467f2bf6f83e16115edb5a8b51f0d9cbef31 Mon Sep 17 00:00:00 2001 From: Basit <1305718+mabaasit@users.noreply.github.com> Date: Wed, 12 Aug 2026 13:57:53 +0200 Subject: [PATCH 6/6] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- packages/compass-collection/src/plugin-tab-title.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/compass-collection/src/plugin-tab-title.tsx b/packages/compass-collection/src/plugin-tab-title.tsx index 1d8638fc3e1..7a98aee03c4 100644 --- a/packages/compass-collection/src/plugin-tab-title.tsx +++ b/packages/compass-collection/src/plugin-tab-title.tsx @@ -88,6 +88,5 @@ export const CollectionPluginTitleComponent = connect( isReadonly: state.metadata?.isReadonly, sourceName: state.metadata?.sourceName, }), - // Passing an empty object so that dispatch is not passed down. - () => ({}) + {} )(PluginTitle);