@bigfishtv/cockpit
Version:
48 lines (42 loc) • 1.14 kB
JavaScript
import PropTypes from 'prop-types'
import React, { Component } from 'react'
import Button from '../button/Button'
import AssetSelectModal from '../modal/AssetSelectModal'
import { modalHandler } from '../modal/ModalHost'
/**
* 'Select from Media' button that opens a media browser modal when clicked
*/
export default class AssetSelectButton extends Component {
static propTypes = {
/** Whether or not to allow uploads to media browser while selecting asset */
allowUploads: PropTypes.bool,
/** Callback function for when asset(s) is chosen */
onFileSelected: PropTypes.func,
}
static defaultProps = {
allowUploads: true,
onFilesSelected: () => console.warn('[AssetSelectButton] no onFilesSelected prop'),
}
handleClick = () => {
modalHandler.add({
Component: AssetSelectModal,
props: { ...this.props },
})
}
render() {
const {
allowUploads,
defaultAssetFolder,
fileTypes,
dispatch,
extensions,
reorderable,
subject,
files,
onReceivedFiles,
onFilesSelected,
...buttonProps
} = this.props
return <Button {...buttonProps} type="button" onClick={this.handleClick} />
}
}