@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
31 lines (28 loc) • 1.01 kB
JavaScript
'use client';
import ActionIcon_default from "../ActionIcon/ActionIcon.mjs";
import { downloadBlob } from "../utils/downloadBlob.mjs";
import React, { memo } from "react";
import { jsx } from "react/jsx-runtime";
import { Download } from "lucide-react";
//#region src/DownloadButton/DownloadButton.tsx
const DownloadButton = memo(({ fileName = "download", fileType = "svg", disabled = false, blobUrl, ...rest }) => {
const handleDownload = async () => {
if (!blobUrl || disabled) return;
try {
await downloadBlob(blobUrl, `${fileName.replace(/\.[^./]+$/, "")}.${fileType}`);
} catch (error) {
console.error("Download failed:", error);
}
};
return /* @__PURE__ */ jsx(ActionIcon_default, {
title: `Download ${fileType.toUpperCase()}`,
...rest,
icon: Download,
onClick: handleDownload
});
});
DownloadButton.displayName = "DownloadButton";
var DownloadButton_default = DownloadButton;
//#endregion
export { DownloadButton_default as default };
//# sourceMappingURL=DownloadButton.mjs.map