alinea
Version:
Headless git-based CMS
54 lines (50 loc) • 2.46 kB
JavaScript
import {
dist_default
} from "../../../chunks/chunk-A5O3N2GS.js";
import "../../../chunks/chunk-NZLE2WMY.js";
// src/dashboard/view/media/FileUploadRow.tsx
import { Chip, HStack, Icon, Loader, TextLabel, VStack } from "alinea/ui";
import { Ellipsis } from "alinea/ui/Ellipsis";
import { IcBaselineErrorOutline } from "alinea/ui/icons/IcBaselineErrorOutline";
import { IcRoundCheck } from "alinea/ui/icons/IcRoundCheck";
import { IcRoundInsertDriveFile } from "alinea/ui/icons/IcRoundInsertDriveFile";
import { UploadStatus } from "../../hook/UseUploads.js";
// src/dashboard/view/media/FileUploadRow.module.scss
var FileUploadRow_module_default = {
"root": "alinea-FileUploadRow",
"root-preview": "alinea-FileUploadRow-preview",
"rootPreview": "alinea-FileUploadRow-preview",
"root-preview-image": "alinea-FileUploadRow-preview-image",
"rootPreviewImage": "alinea-FileUploadRow-preview-image",
"root-preview-icon": "alinea-FileUploadRow-preview-icon",
"rootPreviewIcon": "alinea-FileUploadRow-preview-icon",
"root-status": "alinea-FileUploadRow-status",
"rootStatus": "alinea-FileUploadRow-status"
};
// src/dashboard/view/media/FileUploadRow.tsx
import { jsx, jsxs } from "react/jsx-runtime";
var styles = dist_default(FileUploadRow_module_default);
function FileUploadRow(upload) {
return /* @__PURE__ */ jsxs(HStack, { center: true, full: true, gap: 10, className: styles.root(), children: [
/* @__PURE__ */ jsx("div", { className: styles.root.preview(), children: upload.preview ? /* @__PURE__ */ jsx(
"img",
{
alt: "Uploaded file",
src: upload.preview,
className: styles.root.preview.image()
}
) : /* @__PURE__ */ jsx("div", { className: styles.root.preview.icon(), children: /* @__PURE__ */ jsx(IcRoundInsertDriveFile, {}) }) }),
/* @__PURE__ */ jsx(VStack, { children: /* @__PURE__ */ jsx(Ellipsis, { children: /* @__PURE__ */ jsx(TextLabel, { label: upload.file.name }) }) }),
/* @__PURE__ */ jsx(Chip, { style: { marginLeft: "auto" }, children: upload.file.name.toLowerCase().split(".").pop() }),
/* @__PURE__ */ jsx("div", { className: styles.root.status(), children: upload.status === UploadStatus.Done ? /* @__PURE__ */ jsx(
Icon,
{
icon: upload.error ? IcBaselineErrorOutline : IcRoundCheck,
title: upload.error ? upload.error.message : "Done"
}
) : /* @__PURE__ */ jsx(Loader, {}) })
] });
}
export {
FileUploadRow
};