UNPKG

@awsui/components-react

Version:

On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en

35 lines 1.54 kB
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import React, { useState } from 'react'; import clsx from 'clsx'; import { getBaseProps } from '../internal/base-component'; import { fireNonCancelableEvent } from '../internal/events'; import styles from './styles.css.js'; export default function InternalFileDropzone({ onChange, children, __internalRootRef, ...restProps }) { const [isDropzoneHovered, setDropzoneHovered] = useState(false); const baseProps = getBaseProps(restProps); const onDragOver = (event) => { event.preventDefault(); if (event.dataTransfer) { setDropzoneHovered(true); event.dataTransfer.dropEffect = 'copy'; } }; const onDragLeave = (event) => { event.preventDefault(); setDropzoneHovered(false); if (event.dataTransfer) { event.dataTransfer.dropEffect = 'none'; } }; const onDrop = (event) => { event.preventDefault(); setDropzoneHovered(false); fireNonCancelableEvent(onChange, { value: Array.from(event.dataTransfer.files) }); }; return (React.createElement("div", { ...baseProps, ref: __internalRootRef, className: clsx(baseProps.className, styles.root, { [styles.hovered]: isDropzoneHovered, }), onDragOver: onDragOver, onDragLeave: onDragLeave, onDrop: onDrop }, React.createElement("div", { className: styles.content }, children))); } //# sourceMappingURL=internal.js.map