diff --git a/apps/studio/components/interfaces/Storage/VectorBuckets/VectorBucketDetails/index.tsx b/apps/studio/components/interfaces/Storage/VectorBuckets/VectorBucketDetails/index.tsx
index 0bf237907eb..43b0d7b3b4a 100644
--- a/apps/studio/components/interfaces/Storage/VectorBuckets/VectorBucketDetails/index.tsx
+++ b/apps/studio/components/interfaces/Storage/VectorBuckets/VectorBucketDetails/index.tsx
@@ -45,6 +45,7 @@ import {
ScaffoldSectionTitle,
} from '@/components/layouts/Scaffold'
import { AlertError } from '@/components/ui/AlertError'
+import { TableRowNoResults } from '@/components/ui/TableRowNoResults'
import { useVectorBucketQuery } from '@/data/storage/vector-bucket-query'
import { useVectorBucketsIndexesQuery } from '@/data/storage/vector-buckets-indexes-query'
@@ -182,25 +183,20 @@ export const VectorBucketDetails = () => {
{filteredList.length === 0 ? (
-
-
- {filterString.length > 0 ? (
- <>
- No results found
-
- Your search for "{filterString}" did not return any results
-
- >
- ) : (
- <>
- No tables yet
-
- Create your first table to get started
-
- >
- )}
-
-
+
+ {filterString.length === 0 ? (
+ <>
+ No tables yet
+
+ Create your first table to get started
+
+ >
+ ) : undefined}
+
) : (
filteredList.map((index, idx: number) => {
const id = `index-${idx}`
@@ -225,6 +221,7 @@ export const VectorBucketDetails = () => {
}
onClick={(e) => e.stopPropagation()}
diff --git a/apps/studio/components/interfaces/Storage/VectorBuckets/index.tsx b/apps/studio/components/interfaces/Storage/VectorBuckets/index.tsx
index ffb23a83cd3..492168504f1 100644
--- a/apps/studio/components/interfaces/Storage/VectorBuckets/index.tsx
+++ b/apps/studio/components/interfaces/Storage/VectorBuckets/index.tsx
@@ -16,6 +16,7 @@ import { CreateBucketButton } from '../NewBucketButton'
import { CreateVectorBucketDialog } from './CreateVectorBucketDialog'
import { VectorBucketsErrorState } from './VectorBucketsErrorState'
import { AlphaNotice } from '@/components/ui/AlphaNotice'
+import { TableRowNoResults } from '@/components/ui/TableRowNoResults'
import { useVectorBucketsQuery } from '@/data/storage/vector-buckets-query'
import { createNavigationHandler } from '@/lib/navigation'
@@ -107,14 +108,11 @@ export const VectorsBuckets = () => {
{filteredBuckets.length === 0 && filterString.length > 0 && (
-
-
- No results found
-
- Your search for "{filterString}" did not return any results
-
-
-
+
)}
{filteredBuckets.map((bucket, idx: number) => {
const id = `bucket-${idx}`
diff --git a/apps/studio/components/ui/TableRowNoResults.tsx b/apps/studio/components/ui/TableRowNoResults.tsx
new file mode 100644
index 00000000000..4d7aa9b8ae5
--- /dev/null
+++ b/apps/studio/components/ui/TableRowNoResults.tsx
@@ -0,0 +1,30 @@
+import { type PropsWithChildren } from 'react'
+import { TableCell, TableRow } from 'ui'
+
+interface TableRowNoResultsProps {
+ className?: string
+ colSpan: number
+ search?: string
+}
+
+export const TableRowNoResults = ({
+ className,
+ colSpan,
+ search,
+ children,
+}: PropsWithChildren) => {
+ return (
+
+
+ {children ?? (
+ <>
+ No results found
+
+ Your search for "{search}" did not return any results
+
+ >
+ )}
+
+
+ )
+}
diff --git a/apps/studio/pages/project/[ref]/functions/index.tsx b/apps/studio/pages/project/[ref]/functions/index.tsx
index 994374b978b..a84ec48ffe1 100644
--- a/apps/studio/pages/project/[ref]/functions/index.tsx
+++ b/apps/studio/pages/project/[ref]/functions/index.tsx
@@ -3,7 +3,7 @@ import { ExternalLink, RefreshCw, Search, X } from 'lucide-react'
import { useRouter } from 'next/router'
import { parseAsString, parseAsStringLiteral, useQueryState } from 'nuqs'
import React, { useMemo, useRef, type PropsWithChildren } from 'react'
-import { Button, Card, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from 'ui'
+import { Button, Card, Table, TableBody, TableHead, TableHeader, TableRow } from 'ui'
import { Admonition } from 'ui-patterns/Admonition'
import { Input } from 'ui-patterns/DataInputs/Input'
import { PageContainer } from 'ui-patterns/PageContainer'
@@ -35,6 +35,7 @@ import EdgeFunctionsLayout from '@/components/layouts/EdgeFunctionsLayout/EdgeFu
import { AlertError } from '@/components/ui/AlertError'
import { DocsButton } from '@/components/ui/DocsButton'
import { ShortcutTooltip } from '@/components/ui/ShortcutTooltip'
+import { TableRowNoResults } from '@/components/ui/TableRowNoResults'
import { useEdgeFunctionsQuery } from '@/data/edge-functions/edge-functions-query'
import { useIsProjectActive } from '@/hooks/misc/useSelectedProject'
import { DOCS_URL, IS_PLATFORM } from '@/lib/constants'
@@ -145,6 +146,7 @@ const EdgeFunctionsPage: NextPageWithLayout = () => {
actions={[
search && (