Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
mui-file-dropzone
Advanced tools
Material-UI-dropzone is a React component using Material-UI and is based on the excellent react-dropzone library.
This components provide either a file-upload dropzone or a file-upload dropzone inside of a dialog.
The file-upload dropzone features some snazzy "File Allowed/Not Allowed" effects, previews and alerts.
npm install --save mui-file-dropzone
or
yarn add mui-file-dropzone
mui-file-dropzone
complies to the following support matrix.
version | React | Material-UI |
---|---|---|
4.x | 17.0+ | 5.x |
3.x | 16.8+ | 4.x |
2.x | 15.x or 16.x | 3.x or 4.x |
This is the Dialog component:
When you drag a file onto the dropzone, you get a neat effect:
And if you drag in a wrong type of file, you'll get yelled at:
N.B. This has some limitations (see here for more details).
See https://yuvaleros.github.io/material-ui-dropzone for Documentation and Examples.
This components creates the dropzone, previews and snackbar notifications without a dialog
import React, { Component } from "react";
import { DropzoneArea } from "mui-file-dropzone";
class DropzoneAreaExample extends Component {
constructor(props) {
super(props);
this.state = {
files: [],
};
}
handleChange(files) {
this.setState({
files: files,
});
}
render() {
return <DropzoneArea onChange={this.handleChange.bind(this)} />;
}
}
export default DropzoneAreaExample;
This component provides the DropzoneArea inside of a MaterialUI Dialog.
import React, { Component } from "react";
import { DropzoneDialog } from "mui-file-dropzone";
import Button from "@mui/material/Button";
export default class DropzoneDialogExample extends Component {
constructor(props) {
super(props);
this.state = {
open: false,
files: [],
};
}
handleClose() {
this.setState({
open: false,
});
}
handleSave(files) {
//Saving files to state for further use and closing Modal.
this.setState({
files: files,
open: false,
});
}
handleOpen() {
this.setState({
open: true,
});
}
render() {
return (
<div>
<Button onClick={this.handleOpen.bind(this)}>Add Image</Button>
<DropzoneDialog
open={this.state.open}
onSave={this.handleSave.bind(this)}
acceptedFiles={["image/jpeg", "image/png", "image/bmp"]}
showPreviews={true}
maxFileSize={5000000}
onClose={this.handleClose.bind(this)}
/>
</div>
);
}
}
MIT
Thanks goes to these wonderful people (emoji key):
Yuvaleros 🤔 💻 🎨 📖 💬 👀 🚧 | Mattia Panzeri 🤔 💻 🎨 📖 💡 🚇 🐛 💬 👀 🚧 | Max Carroll 🤔 💻 🎨 💡 👀 |
Matthew Corner 🐛 🤔 💻 | Barry Loong 🤔 💻 | JF Blouin 🤔 💻 |
Anthony Raymond 💻 💡 | isaacbuckman 🐛 💻 💡 | MatthijsMud 🐛 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!
FAQs
A Material-UI file-upload dropzone. Written in TypeScript.
The npm package mui-file-dropzone receives a total of 10,159 weekly downloads. As such, mui-file-dropzone popularity was classified as popular.
We found that mui-file-dropzone demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.