Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
501 changes: 230 additions & 271 deletions app/(app)/models/[id]/page.tsx → app/(app)/apps/[id]/page.tsx

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions app/(app)/apps/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
"use client";

import AppsView from "@/components/dashboard/AppsView";
import SignInWall from "@/components/dashboard/SignInWall";
import { useAuth } from "@/components/dashboard/AuthContext";

export default function AppsPage() {
const { isConnected, isLoading } = useAuth();

if (isLoading) return null;

// Organization-only — logged-out users see the sign-in wall instead of the
// apps list.
if (!isConnected) return <SignInWall route="apps" />;

return <AppsView />;
}
14 changes: 7 additions & 7 deletions app/(app)/jobs/page.tsx → app/(app)/calls/page.tsx
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
"use client";

import JobsView from "@/components/dashboard/JobsView";
import CallsView from "@/components/dashboard/CallsView";
import SignInWall from "@/components/dashboard/SignInWall";
import { useAuth } from "@/components/dashboard/AuthContext";

// Note: page metadata isn't valid in client components, so the previous
// `metadata` export moves out alongside this auth gate. Title/description for
// the jobs route now come from the parent layout's defaults; if we want
// the calls route now come from the parent layout's defaults; if we want
// per-route SEO back, we'll need to split the wall + content into a server
// component shell that owns metadata and a client component that owns auth.

export default function JobsPage() {
export default function CallsPage() {
const { isConnected, isLoading } = useAuth();

// Avoid flashing either state while auth hydrates from localStorage.
if (isLoading) return null;

// Workspace-only route — logged-out users see the route-specific sign-in
// wall ("Jobs are workspace-only") instead of an empty list.
if (!isConnected) return <SignInWall route="jobs" />;
// Organization-only route — logged-out users see the route-specific sign-in
// wall ("Calls are organization-only") instead of an empty list.
if (!isConnected) return <SignInWall route="calls" />;

return <JobsView />;
return <CallsView />;
}
8 changes: 8 additions & 0 deletions app/(app)/explore/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import ExploreView from "@/components/dashboard/ExploreView";

// /explore — the app catalog as a first-class destination (the sidebar's
// "Explore" item points here). Reachable signed-in or out; unlike `/`, it never
// redirects, so logged-in users can browse without bouncing to Home.
export default function ExplorePage() {
return <ExploreView />;
}
Loading