diff --git a/apps/design-system/content/docs/ui-patterns/empty-states.mdx b/apps/design-system/content/docs/ui-patterns/empty-states.mdx
index 9199c4e37c8..851fda3068e 100644
--- a/apps/design-system/content/docs/ui-patterns/empty-states.mdx
+++ b/apps/design-system/content/docs/ui-patterns/empty-states.mdx
@@ -42,6 +42,11 @@ A [Table](../components/table) instance with zero results should display a singl
+Studio contains two pre-built components to handle these cases consistently:
+
+- No Filter Results
+- No Search Results
+
#### Data Grid
[Data Grid](../ui-patterns/tables#data-grid) and [Data Table](../ui-patterns/tables#data-table) component patterns typically span the full height and width of a container. A classic example is [Users](https://supabase.com/dashboard/project/_/auth/users), which (as it sounds) displays a list of the project’s registered users. Any instance with zero results should display a more prominent empty with a clear title, description, and supporting illustration.
diff --git a/apps/studio/components/interfaces/Home/ProjectList/EmptyStates.tsx b/apps/studio/components/interfaces/Home/ProjectList/EmptyStates.tsx
index e7db6d16c1a..60f4c422d2b 100644
--- a/apps/studio/components/interfaces/Home/ProjectList/EmptyStates.tsx
+++ b/apps/studio/components/interfaces/Home/ProjectList/EmptyStates.tsx
@@ -7,7 +7,6 @@ import { BASE_PATH } from 'lib/constants'
import {
Button,
Card,
- cn,
Skeleton,
Table,
TableBody,
@@ -36,62 +35,6 @@ export const Header = () => {
)
}
-export const NoFilterResults = ({
- filterStatus,
- resetFilterStatus,
- className,
-}: {
- filterStatus: string[]
- resetFilterStatus?: () => void
- className?: string
-}) => {
- return (
-
-
- {/* [Joshen] Just keeping it simple for now unless we decide to extend this to other statuses */}
-
- Your search for "{searchString}" did not return any results
+
+
{label ?? 'No results found'}
+
+ {description ?? `Your search for “${searchString}” did not return any results`}
{onResetFilter !== undefined && (
diff --git a/apps/studio/pages/org/[slug]/index.tsx b/apps/studio/pages/org/[slug]/index.tsx
index 71d5cc8872a..bb42b54ccc1 100644
--- a/apps/studio/pages/org/[slug]/index.tsx
+++ b/apps/studio/pages/org/[slug]/index.tsx
@@ -1,3 +1,5 @@
+import Link from 'next/link'
+
import { useIsMFAEnabled } from 'common'
import { ProjectList } from 'components/interfaces/Home/ProjectList/ProjectList'
import { HomePageActions } from 'components/interfaces/HomePageActions'
@@ -5,9 +7,9 @@ import DefaultLayout from 'components/layouts/DefaultLayout'
import OrganizationLayout from 'components/layouts/OrganizationLayout'
import { PageLayout } from 'components/layouts/PageLayout/PageLayout'
import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold'
-import { InlineLink } from 'components/ui/InlineLink'
import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization'
import type { NextPageWithLayout } from 'types'
+import { Button } from 'ui'
import { Admonition } from 'ui-patterns'
const ProjectsPage: NextPageWithLayout = () => {
@@ -20,17 +22,24 @@ const ProjectsPage: NextPageWithLayout = () => {
{disableAccessMfa ? (
-
-
- Set up MFA on your account through your{' '}
- account preferences to access this
- organization
-
-
+
+ Set up multi-factor authentication (MFA) on your account to access this
+ organization’s projects.
+ >
+ }
+ actions={
+
+ }
+ />
) : (
- // [Joshen] Very odd, but the h-px here is required for ProjectList to have a max
- // height based on the remaining space that it can grow to
-