-
+
+
+ {isLoading ? (
+
+ ) : (
+ <>
+
+
+ {paginatedRegistries.map((registry, index) => (
+
+ -
+
+
+
+
+ {registry.name}{" "}
+
+
+
+ {registry.description && (
+
+ {registry.description}
+
+ )}
+
+
+
+
+
+
+
+
+
+ {index < paginatedRegistries.length - 1 && (
+
+ )}
+
+ ))}
+
+ {totalPages > 1 && (
+
+
+
+
+ handlePageChange(event, page - 1, page <= 1)
+ }
+ className={cn(
+ page <= 1
+ ? "pointer-events-none opacity-50"
+ : "cursor-pointer"
+ )}
+ />
+
+ {getPageNumbers(page, totalPages).map((p, i) =>
+ p === "ellipsis" ? (
+
+
+
+ ) : (
+
+ handlePageChange(event, p)}
+ className="cursor-pointer"
+ >
+ {p}
+
+
+ )
+ )}
+
+ = totalPages || undefined}
+ tabIndex={page >= totalPages ? -1 : undefined}
+ onClick={(event) =>
+ handlePageChange(event, page + 1, page >= totalPages)
+ }
+ className={cn(
+ page >= totalPages
+ ? "pointer-events-none opacity-50"
+ : "cursor-pointer"
+ )}
+ />
+
+
+
+ )}
+ >
+ )}
+
+
+ )
+}
+
+function DirectoryListSkeleton() {
+ return (
+ <>
+
- {registries.map((registry, index) => (
+ {Array.from({ length: 5 }, (_, index) => (
- -
-
+
-
+
-
-
- {registry.name}{" "}
-
-
-
- {registry.description && (
-
- {registry.description}
-
- )}
+
+
+
-
-
+
+
-
-
-
+
+
+
- {index < globalRegistries.length - 1 && (
-
- )}
+ {index < 4 && }
))}
-
+ >
)
}
diff --git a/apps/v4/components/search-directory.tsx b/apps/v4/components/directory-search.tsx
similarity index 62%
rename from apps/v4/components/search-directory.tsx
rename to apps/v4/components/directory-search.tsx
index 73b88b9346..77d51edd71 100644
--- a/apps/v4/components/search-directory.tsx
+++ b/apps/v4/components/directory-search.tsx
@@ -1,23 +1,24 @@
-import * as React from "react"
+"use client"
+
import { Search, X } from "lucide-react"
-import { useSearchRegistry } from "@/hooks/use-search-registry"
-import { Field } from "@/registry/new-york-v4/ui/field"
+import { Field } from "@/styles/base-nova/ui/field"
import {
InputGroup,
InputGroupAddon,
InputGroupButton,
InputGroupInput,
-} from "@/registry/new-york-v4/ui/input-group"
-
-export const SearchDirectory = () => {
- const { query, registries, setQuery } = useSearchRegistry()
-
- const onQueryChange = (e: React.ChangeEvent