More file browsing improvements

This commit is contained in:
Mark McDowall 2019-04-05 20:16:57 -07:00
parent 5b2d0a2ade
commit a63ca0f0e9
3 changed files with 44 additions and 18 deletions

View File

@ -42,8 +42,8 @@ function createMapStateToProps() {
} }
const mapDispatchToProps = { const mapDispatchToProps = {
fetchPaths, dispatchFetchPaths: fetchPaths,
clearPaths dispatchClearPaths: clearPaths
}; };
class FileBrowserModalContentConnector extends Component { class FileBrowserModalContentConnector extends Component {
@ -51,9 +51,16 @@ class FileBrowserModalContentConnector extends Component {
// Lifecycle // Lifecycle
componentDidMount() { componentDidMount() {
this.props.fetchPaths({ const {
path: this.props.value, value,
allowFoldersWithoutTrailingSlashes: true includeFiles,
dispatchFetchPaths
} = this.props;
dispatchFetchPaths({
path: value,
allowFoldersWithoutTrailingSlashes: true,
includeFiles
}); });
} }
@ -61,18 +68,24 @@ class FileBrowserModalContentConnector extends Component {
// Listeners // Listeners
onFetchPaths = (path) => { onFetchPaths = (path) => {
this.props.fetchPaths({ const {
includeFiles,
dispatchFetchPaths
} = this.props;
dispatchFetchPaths({
path, path,
allowFoldersWithoutTrailingSlashes: true allowFoldersWithoutTrailingSlashes: true,
includeFiles
}); });
} }
onClearPaths = () => { onClearPaths = () => {
// this.props.clearPaths(); // this.props.dispatchClearPaths();
} }
onModalClose = () => { onModalClose = () => {
this.props.clearPaths(); this.props.dispatchClearPaths();
this.props.onModalClose(); this.props.onModalClose();
} }
@ -93,9 +106,14 @@ class FileBrowserModalContentConnector extends Component {
FileBrowserModalContentConnector.propTypes = { FileBrowserModalContentConnector.propTypes = {
value: PropTypes.string, value: PropTypes.string,
fetchPaths: PropTypes.func.isRequired, includeFiles: PropTypes.bool.isRequired,
clearPaths: PropTypes.func.isRequired, dispatchFetchPaths: PropTypes.func.isRequired,
dispatchClearPaths: PropTypes.func.isRequired,
onModalClose: PropTypes.func.isRequired onModalClose: PropTypes.func.isRequired
}; };
FileBrowserModalContentConnector.defaultProps = {
includeFiles: false
};
export default connect(createMapStateToProps, mapDispatchToProps)(FileBrowserModalContentConnector); export default connect(createMapStateToProps, mapDispatchToProps)(FileBrowserModalContentConnector);

View File

@ -111,6 +111,7 @@ class PathInput extends Component {
value, value,
placeholder, placeholder,
paths, paths,
includeFiles,
hasError, hasError,
hasWarning, hasWarning,
hasFileBrowser, hasFileBrowser,
@ -171,6 +172,7 @@ class PathInput extends Component {
isOpen={this.state.isFileBrowserModalOpen} isOpen={this.state.isFileBrowserModalOpen}
name={name} name={name}
value={value} value={value}
includeFiles={includeFiles}
onChange={onChange} onChange={onChange}
onModalClose={this.onFileBrowserModalClose} onModalClose={this.onFileBrowserModalClose}
/> />
@ -188,6 +190,7 @@ PathInput.propTypes = {
value: PropTypes.string, value: PropTypes.string,
placeholder: PropTypes.string, placeholder: PropTypes.string,
paths: PropTypes.array.isRequired, paths: PropTypes.array.isRequired,
includeFiles: PropTypes.bool.isRequired,
hasError: PropTypes.bool, hasError: PropTypes.bool,
hasWarning: PropTypes.bool, hasWarning: PropTypes.bool,
hasFileBrowser: PropTypes.bool, hasFileBrowser: PropTypes.bool,

View File

@ -28,8 +28,8 @@ function createMapStateToProps() {
} }
const mapDispatchToProps = { const mapDispatchToProps = {
fetchPaths, dispatchFetchPaths: fetchPaths,
clearPaths dispatchClearPaths: clearPaths
}; };
class PathInputConnector extends Component { class PathInputConnector extends Component {
@ -38,14 +38,19 @@ class PathInputConnector extends Component {
// Listeners // Listeners
onFetchPaths = (path) => { onFetchPaths = (path) => {
this.props.fetchPaths({ const {
includeFiles,
dispatchFetchPaths
} = this.props;
dispatchFetchPaths({
path, path,
includeFiles: this.props.includeFiles includeFiles
}); });
} }
onClearPaths = () => { onClearPaths = () => {
this.props.clearPaths(); this.props.dispatchClearPaths();
} }
// //
@ -64,8 +69,8 @@ class PathInputConnector extends Component {
PathInputConnector.propTypes = { PathInputConnector.propTypes = {
includeFiles: PropTypes.bool.isRequired, includeFiles: PropTypes.bool.isRequired,
fetchPaths: PropTypes.func.isRequired, dispatchFetchPaths: PropTypes.func.isRequired,
clearPaths: PropTypes.func.isRequired dispatchClearPaths: PropTypes.func.isRequired
}; };
PathInputConnector.defaultProps = { PathInputConnector.defaultProps = {