diff --git a/app/(dashboard)/projects/[id]/shots/[shotId]/page.tsx b/app/(dashboard)/projects/[id]/shots/[shotId]/page.tsx index 213a04b..93f4196 100644 --- a/app/(dashboard)/projects/[id]/shots/[shotId]/page.tsx +++ b/app/(dashboard)/projects/[id]/shots/[shotId]/page.tsx @@ -9,8 +9,7 @@ import { Button } from "@/components/ui/button"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { TaskList } from "@/components/tasks/TaskList"; import { Separator } from "@/components/ui/separator"; -import { getInitials } from "@/lib/utils"; -import { cn } from "@/lib/utils"; +import { getInitials, cn, formatRelativeDate } from "@/lib/utils"; import { Film, ArrowLeft, @@ -25,6 +24,9 @@ import { Share2, Eye, EyeOff, + MessageSquare, + ExternalLink, + XCircle, } from "lucide-react"; import type { ShotWithDetails } from "@/types"; import { ShotSettingsTab } from "@/components/shots/ShotSettingsTab"; @@ -44,6 +46,20 @@ const STATUS_CONFIG: Record< COMPLETE: { label: "Complete", className: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20", Icon: CheckCircle2 }, }; +const APPROVAL_STYLES: Record = { + PENDING_REVIEW: "bg-amber-500/10 text-amber-400 border-amber-500/20", + APPROVED: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20", + REJECTED: "bg-red-500/10 text-red-400 border-red-500/20", + NEEDS_CHANGES: "bg-orange-500/10 text-orange-400 border-orange-500/20", +}; + +const APPROVAL_ICONS: Record = { + PENDING_REVIEW: Clock, + APPROVED: CheckCircle2, + REJECTED: XCircle, + NEEDS_CHANGES: AlertCircle, +}; + const PRIORITY_CONFIG: Record = { LOW: { label: "Low", dot: "bg-zinc-400" }, NORMAL: { label: "Normal", dot: "bg-blue-400" }, @@ -67,7 +83,7 @@ export default function ShotDetailPage() { const [canManage, setCanManage] = useState(false); const [isDuplicating, setIsDuplicating] = useState(false); const [isActioning, setIsActioning] = useState(false); - const [activeTab, setActiveTab] = useState<"tasks" | "footage" | "settings">("tasks"); + const [activeTab, setActiveTab] = useState<"tasks" | "reviews" | "footage" | "settings">("tasks"); const fetchShot = async () => { try { @@ -377,6 +393,18 @@ export default function ShotDetailPage() { Tasks +