You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					65 lines
				
				2.6 KiB
			
		
		
			
		
	
	
					65 lines
				
				2.6 KiB
			| 
											3 years ago
										 | "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 | ||
|  |  * | ||
|  |  * <img src="components/drop-zone-item.png" /> | ||
|  |  * | ||
|  |  * 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 ( | ||
|  |  *  <DropZoneItem | ||
|  |  *    src="https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.npr.org%2F2019%2F05%2F17%2F724262019%2Fgrumpy-cat-dies-her-spirit-will-live-on-family-says&psig=AOvVaw2ZKtTEZr8N43fx9x-lTITa&ust=1581083274368000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCKidqqyIvecCFQAAAAAdAAAAABAD" | ||
|  |  *    filename="shut-up-it-works.png" | ||
|  |  *  /> | ||
|  |  * ) | ||
|  |  * @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; |