From a461a4e5c9eba672bd98c232dec4479e454e7643 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 23 Feb 2026 22:10:48 +0000 Subject: [PATCH 1/4] Points view: fix Similar input visibility, empty vs filtered messages - Similar to (id): keep input visible when no results (wrap + minWidth) so user is not stuck when similarity search returns nothing - Hide filter inputs when collection is empty; show when query returns no results so user can change filters - Empty collection: show 'No Points are present, is empty' - Filtered no results: show 'Nothing matches the current filters' Co-authored-by: Cursor --- .../PointsFilter/SimilarSearchField.jsx | 9 ++++++--- src/components/Points/PointsTabs.jsx | 20 ++++++++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/components/Points/PointsFilter/SimilarSearchField.jsx b/src/components/Points/PointsFilter/SimilarSearchField.jsx index c3e58a94c..762e25ec1 100644 --- a/src/components/Points/PointsFilter/SimilarSearchField.jsx +++ b/src/components/Points/PointsFilter/SimilarSearchField.jsx @@ -195,13 +195,16 @@ const SimilarSearchField = memo(function SimilarSearchField({ ...sharedTextFieldSx, '& .MuiOutlinedInput-root': { ...sharedTextFieldSx['& .MuiOutlinedInput-root'], - flexWrap: isExpanded ? 'wrap' : 'nowrap', - overflow: isExpanded ? 'visible' : 'hidden', + flexWrap: 'wrap', // always wrap so input stays visible when no results (narrow column + chip) + overflow: 'visible', + }, + '& .MuiOutlinedInput-input': { + minWidth: '120px', // ensure input is always visible/focusable when similarity returns no results }, }} /> ), - [theme.palette.text.secondary, sharedTextFieldSx, isExpanded, handleBackspaceEdit] + [theme.palette.text.secondary, sharedTextFieldSx, handleBackspaceEdit] ); return ( diff --git a/src/components/Points/PointsTabs.jsx b/src/components/Points/PointsTabs.jsx index c31483710..838a051fe 100644 --- a/src/components/Points/PointsTabs.jsx +++ b/src/components/Points/PointsTabs.jsx @@ -163,6 +163,15 @@ const PointsTabs = ({ collectionName, client }) => { }, [collectionName, offset, similarIds, filters]); const isLoading = !points && !errorMessage && requestCount > 0; + // Collection is empty when we have no filters/similar and scroll returned 0 points + const isCollectionEmpty = + points && + !errorMessage && + requestCount === 0 && + points.points?.length === 0 && + similarIds.length === 0 && + filters.length === 0; + return ( {errorMessage !== null && } @@ -171,8 +180,8 @@ const PointsTabs = ({ collectionName, client }) => { ⚠ Error: {errorMessage} )} - {/* Always render the same PointsFilter instance to preserve filter input state */} - {!errorMessage && ( + {/* Hide filter when collection is empty; show when we have points or when query returned no results (so user can change input) */} + {!errorMessage && !isCollectionEmpty && ( { ))} )} - {points && !errorMessage && requestCount === 0 && points.points?.length === 0 && ( + {points && !errorMessage && requestCount === 0 && points.points?.length === 0 && isCollectionEmpty && ( 📪 No Points are present, {collectionName} is empty )} + {points && !errorMessage && requestCount === 0 && points.points?.length === 0 && !isCollectionEmpty && ( + + Nothing matches the current filters + + )} {points && !errorMessage && points.points?.length > 0 && ( <> {points.points?.map((point) => ( From 32da6a2ea456b994ce23a55fb5c68f86a3d13324 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 23 Feb 2026 22:22:31 +0000 Subject: [PATCH 2/4] Revert SimilarSearchField style and isExpanded changes Co-authored-by: Cursor --- .../Points/PointsFilter/SimilarSearchField.jsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/components/Points/PointsFilter/SimilarSearchField.jsx b/src/components/Points/PointsFilter/SimilarSearchField.jsx index 762e25ec1..c3e58a94c 100644 --- a/src/components/Points/PointsFilter/SimilarSearchField.jsx +++ b/src/components/Points/PointsFilter/SimilarSearchField.jsx @@ -195,16 +195,13 @@ const SimilarSearchField = memo(function SimilarSearchField({ ...sharedTextFieldSx, '& .MuiOutlinedInput-root': { ...sharedTextFieldSx['& .MuiOutlinedInput-root'], - flexWrap: 'wrap', // always wrap so input stays visible when no results (narrow column + chip) - overflow: 'visible', - }, - '& .MuiOutlinedInput-input': { - minWidth: '120px', // ensure input is always visible/focusable when similarity returns no results + flexWrap: isExpanded ? 'wrap' : 'nowrap', + overflow: isExpanded ? 'visible' : 'hidden', }, }} /> ), - [theme.palette.text.secondary, sharedTextFieldSx, handleBackspaceEdit] + [theme.palette.text.secondary, sharedTextFieldSx, isExpanded, handleBackspaceEdit] ); return ( From eb90c099adb2e5bb896fd43d4480c6a808782e66 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 23 Feb 2026 22:27:40 +0000 Subject: [PATCH 3/4] Show filter when there is an error so user can clear invalid ID or filters Co-authored-by: Cursor --- src/components/Points/PointsTabs.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Points/PointsTabs.jsx b/src/components/Points/PointsTabs.jsx index 838a051fe..620da7721 100644 --- a/src/components/Points/PointsTabs.jsx +++ b/src/components/Points/PointsTabs.jsx @@ -180,8 +180,8 @@ const PointsTabs = ({ collectionName, client }) => { ⚠ Error: {errorMessage} )} - {/* Hide filter when collection is empty; show when we have points or when query returned no results (so user can change input) */} - {!errorMessage && !isCollectionEmpty && ( + {/* Hide filter only when collection is empty; show on error so user can clear/fix invalid ID or filters */} + {(errorMessage || !isCollectionEmpty) && ( Date: Mon, 23 Feb 2026 22:30:55 +0000 Subject: [PATCH 4/4] Simplify filter visibility to !isCollectionEmpty (error case already covered) Co-authored-by: Cursor --- src/components/Points/PointsTabs.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Points/PointsTabs.jsx b/src/components/Points/PointsTabs.jsx index 620da7721..2f1dbfb96 100644 --- a/src/components/Points/PointsTabs.jsx +++ b/src/components/Points/PointsTabs.jsx @@ -180,8 +180,8 @@ const PointsTabs = ({ collectionName, client }) => { ⚠ Error: {errorMessage} )} - {/* Hide filter only when collection is empty; show on error so user can clear/fix invalid ID or filters */} - {(errorMessage || !isCollectionEmpty) && ( + {/* Hide filter only when collection is empty (isCollectionEmpty is false when there's an error or user has filters/similar) */} + {!isCollectionEmpty && (