This commit is contained in:
@@ -27,10 +27,12 @@ import {
|
||||
MessageSquare,
|
||||
ExternalLink,
|
||||
XCircle,
|
||||
FileVideo,
|
||||
} from "lucide-react";
|
||||
import type { ShotWithDetails } from "@/types";
|
||||
import { ShotSettingsTab } from "@/components/shots/ShotSettingsTab";
|
||||
import { FootageViewer } from "@/components/shots/FootageViewer";
|
||||
import { HighResUploadDialog } from "@/components/shots/HighResUploadDialog";
|
||||
import { duplicateShot, internallyApproveShot, shareWithClient, unshareFromClient, unapproveShot } from "@/actions/shots";
|
||||
|
||||
const STATUS_CONFIG: Record<
|
||||
@@ -83,6 +85,7 @@ export default function ShotDetailPage() {
|
||||
const [canManage, setCanManage] = useState(false);
|
||||
const [isDuplicating, setIsDuplicating] = useState(false);
|
||||
const [isActioning, setIsActioning] = useState(false);
|
||||
const [highResDialogOpen, setHighResDialogOpen] = useState(false);
|
||||
const [activeTab, setActiveTab] = useState<"tasks" | "reviews" | "footage" | "settings">("tasks");
|
||||
|
||||
const fetchShot = async () => {
|
||||
@@ -407,8 +410,20 @@ export default function ShotDetailPage() {
|
||||
>
|
||||
<Copy className="h-3.5 w-3.5" />
|
||||
{isDuplicating ? "Duplicating…" : "Duplicate Shot"}
|
||||
</Button>
|
||||
</div>
|
||||
</Button> <Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
onClick={() => setHighResDialogOpen(true)}
|
||||
className={cn(
|
||||
"gap-2",
|
||||
shot.highResFilename
|
||||
? "border-emerald-500/40 text-emerald-400 hover:bg-emerald-500/10"
|
||||
: "border-zinc-600 text-zinc-400 hover:bg-zinc-700/50"
|
||||
)}
|
||||
>
|
||||
<FileVideo className="h-3.5 w-3.5" />
|
||||
{shot.highResFilename ? "High Res ✓" : "Upload High Res"}
|
||||
</Button> </div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -572,6 +587,15 @@ export default function ShotDetailPage() {
|
||||
<ShotSettingsTab shot={shot} artists={artists} onSaved={fetchShot} />
|
||||
)}
|
||||
</div>
|
||||
|
||||
<HighResUploadDialog
|
||||
shotId={shot.id}
|
||||
shotCode={shot.shotCode}
|
||||
currentFilename={shot.highResFilename ?? null}
|
||||
open={highResDialogOpen}
|
||||
onClose={() => setHighResDialogOpen(false)}
|
||||
onSuccess={fetchShot}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user