diff --git a/apps/web/src/app/(pages)/(dashboard)/companies/page.tsx b/apps/web/src/app/(pages)/(dashboard)/companies/page.tsx
index 41d2419..f8659bf 100644
--- a/apps/web/src/app/(pages)/(dashboard)/companies/page.tsx
+++ b/apps/web/src/app/(pages)/(dashboard)/companies/page.tsx
@@ -1,5 +1,6 @@
import { unstable_noStore as noStore } from "next/cache";
+import NoResults from "~/app/_components/no-results";
import { RoleReviewCard } from "~/app/_components/reviews/role-review-card";
import SearchFilter from "~/app/_components/search/search-filter";
import { api } from "~/trpc/server";
@@ -20,13 +21,17 @@ export default async function Companies() {
return (
<>
-
- {roles.map((role) => {
- return (
-
- );
- })}
-
+ {roles.length > 0 ? (
+
+ {roles.map((role) => {
+ return (
+
+ );
+ })}
+
+ ) : (
+
+ )}
>
);
}
diff --git a/apps/web/src/app/(pages)/(dashboard)/roles/page.tsx b/apps/web/src/app/(pages)/(dashboard)/roles/page.tsx
index aa1a937..e47adbe 100644
--- a/apps/web/src/app/(pages)/(dashboard)/roles/page.tsx
+++ b/apps/web/src/app/(pages)/(dashboard)/roles/page.tsx
@@ -12,6 +12,8 @@ import { WorkEnvironment, WorkTerm } from "@cooper/db/schema";
import { cn } from "@cooper/ui";
import { useToast } from "@cooper/ui/hooks/use-toast";
+import LoadingResults from "~/app/_components/loading-results";
+import NoResults from "~/app/_components/no-results";
import { ReviewCard } from "~/app/_components/reviews/review-card";
import { ReviewCardPreview } from "~/app/_components/reviews/review-card-preview";
import SearchFilter from "~/app/_components/search/search-filter";
@@ -79,7 +81,7 @@ export default function Roles({
return (
<>
- {reviews.isSuccess && (
+ {reviews.isSuccess && reviews.data.length > 0 && (
{reviews.data.map((review, i) => {
@@ -106,6 +108,8 @@ export default function Roles({
)}
+ {reviews.isSuccess && reviews.data.length === 0 && }
+ {reviews.isPending && }
>
);
}
diff --git a/apps/web/src/app/_components/cooper-logo.tsx b/apps/web/src/app/_components/cooper-logo.tsx
new file mode 100644
index 0000000..5339fbc
--- /dev/null
+++ b/apps/web/src/app/_components/cooper-logo.tsx
@@ -0,0 +1,16 @@
+import Image from "next/image";
+
+interface CooperLogoProps {
+ width?: number;
+}
+
+export default function CooperLogo({ width }: CooperLogoProps) {
+ return (
+
+ );
+}
diff --git a/apps/web/src/app/_components/header.tsx b/apps/web/src/app/_components/header.tsx
index 4391843..cb6d287 100644
--- a/apps/web/src/app/_components/header.tsx
+++ b/apps/web/src/app/_components/header.tsx
@@ -1,6 +1,5 @@
"use client";
-import Image from "next/image";
import Link from "next/link";
import { usePathname } from "next/navigation";
@@ -9,6 +8,7 @@ import { cn } from "@cooper/ui";
import { NewReviewDialog } from "~/app/_components/reviews/new-review-dialogue";
import { altivoFont } from "~/app/styles/font";
+import CooperLogo from "./cooper-logo";
interface HeaderProps {
session: Session | null;
@@ -29,12 +29,7 @@ export default function Header({ session, auth }: HeaderProps) {
{/* Logo + Cooper */}
-
+
+
+
+
Loading ...
+
+
+ );
+}
diff --git a/apps/web/src/app/_components/no-results.tsx b/apps/web/src/app/_components/no-results.tsx
new file mode 100644
index 0000000..43c8650
--- /dev/null
+++ b/apps/web/src/app/_components/no-results.tsx
@@ -0,0 +1,33 @@
+"use client";
+
+import { usePathname, useRouter } from "next/navigation";
+
+import { Button } from "@cooper/ui/button";
+
+import CooperLogo from "./cooper-logo";
+
+export default function NoResults() {
+ const router = useRouter();
+ const pathname = usePathname();
+
+ function clearFilters() {
+ router.push(pathname);
+ }
+
+ return (
+
+
+
+
No Results Found
+
+
+
+ );
+}