moved high res uploads button
Deploy / deploy (push) Successful in 2m39s

This commit is contained in:
twotalesanimation
2026-06-25 10:14:27 +02:00
parent b683976cc6
commit 0274b63c1e
4 changed files with 294 additions and 97 deletions
@@ -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>
);
}