"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DropZoneItem = void 0;
const react_1 = __importDefault(require("react"));
const styled_components_1 = __importDefault(require("styled-components"));
const box_1 = require("../../atoms/box");
const icon_1 = require("../../atoms/icon");
const button_1 = require("../../atoms/button");
const DropZoneImg = styled_components_1.default.div `
  width: 80px;
  height: 80px;
  margin-right: ${({ theme }) => theme.space.lg};
  background-image: url('${({ src }) => src}');
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  display: inline-block;
`;
/**
 * @classdesc
 *
 *  *
 * Single uploaded file. Usually it is used within {@link DropZone}, but it can also be
 * reused anywhere
 *
 * ### Usage
 *
 * ```javascript
 * import { DropZoneItem, DropZoneItemProps } from '@adminjs/design-system'
 * ```
 *
 * @see DropZoneItem
 * @hideconstructor
 * @see DropZoneItemProps
 * @example
 * return (
 *  
 * )
 * @component
 * @subcategory Molecules
 * @section design-system
 */
const DropZoneItem = (props) => {
    const { file, onRemove, filename } = props;
    let { src } = props;
    if (file && ['image/png', 'image/jpeg', 'image/gif'].includes(file.type)) {
        src = URL.createObjectURL(file);
    }
    return (react_1.default.createElement(box_1.Box, { bg: "grey20", px: "lg", py: "default", mt: "default", flex: true, alignItems: "center" },
        react_1.default.createElement(icon_1.Icon, { icon: "Attachment", mr: "default" }),
        src ? (react_1.default.createElement(DropZoneImg, { src: src })) : '',
        react_1.default.createElement(box_1.Box, { flexGrow: 1 }, (file === null || file === void 0 ? void 0 : file.name) || filename),
        onRemove && (react_1.default.createElement(button_1.Button, { variant: "text", m: "-8px", size: "icon", type: "button", onClick: () => onRemove && onRemove() },
            react_1.default.createElement(icon_1.Icon, { icon: "Close" })))));
};
exports.DropZoneItem = DropZoneItem;
exports.default = DropZoneItem;
 *
 * Single uploaded file. Usually it is used within {@link DropZone}, but it can also be
 * reused anywhere
 *
 * ### Usage
 *
 * ```javascript
 * import { DropZoneItem, DropZoneItemProps } from '@adminjs/design-system'
 * ```
 *
 * @see DropZoneItem
 * @hideconstructor
 * @see DropZoneItemProps
 * @example
 * return (
 *  
 * )
 * @component
 * @subcategory Molecules
 * @section design-system
 */
const DropZoneItem = (props) => {
    const { file, onRemove, filename } = props;
    let { src } = props;
    if (file && ['image/png', 'image/jpeg', 'image/gif'].includes(file.type)) {
        src = URL.createObjectURL(file);
    }
    return (react_1.default.createElement(box_1.Box, { bg: "grey20", px: "lg", py: "default", mt: "default", flex: true, alignItems: "center" },
        react_1.default.createElement(icon_1.Icon, { icon: "Attachment", mr: "default" }),
        src ? (react_1.default.createElement(DropZoneImg, { src: src })) : '',
        react_1.default.createElement(box_1.Box, { flexGrow: 1 }, (file === null || file === void 0 ? void 0 : file.name) || filename),
        onRemove && (react_1.default.createElement(button_1.Button, { variant: "text", m: "-8px", size: "icon", type: "button", onClick: () => onRemove && onRemove() },
            react_1.default.createElement(icon_1.Icon, { icon: "Close" })))));
};
exports.DropZoneItem = DropZoneItem;
exports.default = DropZoneItem;