完善视频提炼和视频复刻完善提交测试

This commit is contained in:
Azmat@qq.com
2026-08-28 10:15:15 +08:00
parent 52c5cdae1d
commit 849b14a0f6
33 changed files with 1475 additions and 208 deletions
@@ -5,6 +5,7 @@ import { useCallback, useEffect, useRef, useState } from "react";
import { createPortal } from "react-dom";
import { Check, ChevronLeft, FolderPlus, Pencil, Trash2, Upload, Users, X } from "lucide-react";
import { api } from "../../api";
import { useFileDrop } from "../use-file-drop";
import type { FreeAssetGroup, FreeAssetItem, FreeVideoRef } from "../../types";
import { useBodyScrollLock } from "../overlays";
@@ -131,6 +132,17 @@ export function AssetLibraryModal({ open, onClose, onPick, notify }: {
}
};
// 素材库弹窗:整块 body 都能接住拖进来的文件。在组内传素材,在组外快速建图。
const libDrop = useFileDrop(
(files) => {
const file = files[0];
if (!file) return;
if (activeGroup) void uploadAsset(file);
else void quickUploadImage(file);
},
{ disabled: uploading }
);
const quickUploadImage = async (file: File) => {
setQuickUploading(true);
try {
@@ -278,7 +290,11 @@ export function AssetLibraryModal({ open, onClose, onPick, notify }: {
</div>
<button className="x modal-x" type="button" onClick={onClose} aria-label="关闭"><X size={14} /></button>
</div>
<div className="modal-b fc-lib-body" onClick={() => { setConfirmDeleteAssetId(null); setConfirmDeleteGroupId(null); }}>
<div
className={`modal-b fc-lib-body${libDrop.dragging ? " is-dragover" : ""}`}
{...libDrop.dropProps}
onClick={() => { setConfirmDeleteAssetId(null); setConfirmDeleteGroupId(null); }}
>
{!activeGroup ? (
<>
<div className="fc-lib-toolbar">