@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
JavaScript
// 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