diff --git a/src/components/icons/index.tsx b/src/components/icons/index.tsx index 199293b..cf66515 100644 --- a/src/components/icons/index.tsx +++ b/src/components/icons/index.tsx @@ -59,6 +59,17 @@ export const IconDownload = ({style, className}: IconProps) => ( ) +export const IconDownloadOutline = ({style, className}: IconProps)=>( + + + +) + export const IconPin = ({style, className}: IconProps) => ( diff --git a/src/components/video/video-list-item.tsx b/src/components/video/video-list-item.tsx index 638123c..4a8c5d0 100644 --- a/src/components/video/video-list-item.tsx +++ b/src/components/video/video-list-item.tsx @@ -5,7 +5,7 @@ import {Checkbox, Popconfirm} from "antd"; import ImageCover from '@/assets/images/cover.png' import { - IconDelete, + IconDelete, IconDownloadOutline, IconEdit, IconGenerateFailed, IconGenerating, @@ -15,11 +15,13 @@ import { import {VideoStatus} from "@/service/api/video.ts"; import {formatTime} from "@/util/strings.ts"; import {useTranslation} from "react-i18next"; +import {saveAs} from "file-saver"; type Props = { video: VideoInfo | LiveVideoInfo, additionOperation?: React.ReactNode; editable?: boolean; + downloadVisible?: boolean; sortable?: boolean; index?: number; checked?: boolean; @@ -41,7 +43,7 @@ type Props = { export const VideoListItem = ( { id, video, onRemove,removeIcon, checked,playing, - onCheckedChange, onEdit, active, editable, + onCheckedChange, onEdit, active, editable,downloadVisible, className, sortable, type, index,onItemClick, additionOperation,onRegenerate,hideCheckBox }: Props) => { @@ -58,7 +60,12 @@ export const VideoListItem = ( const generating = (type == 'create' && video.status == VideoStatus.Generating) const failed = (type == 'create' && (video.status != VideoStatus.Generating && video.status != VideoStatus.Generated) ) - + const handleDownloadVideo = ()=>{ + if(video.oss_video_url){ + const ext = video.oss_video_url.substring(video.oss_video_url.lastIndexOf('.')) + saveAs(video.oss_video_url,`${video.title || video.video_title}${ext}`) + } + } return
*/} {/* : )}*/}
+ {downloadVisible && + } {editable && !generating && <> {onEdit &&