diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000..82c461c7
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+custom: https://processingfoundation.org/support
diff --git a/client/components/Nav.jsx b/client/components/Nav.jsx
index 3886ccc8..4a1212c9 100644
--- a/client/components/Nav.jsx
+++ b/client/components/Nav.jsx
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
import React from 'react';
import { connect } from 'react-redux';
import { withRouter } from 'react-router';
-import { Link, browserHistory } from 'react-router';
+import { Link } from 'react-router';
import InlineSVG from 'react-inlinesvg';
import classNames from 'classnames';
import * as IDEActions from '../modules/IDE/actions/ide';
@@ -167,8 +167,6 @@ class Nav extends React.PureComponent {
handleLogout() {
this.props.logoutUser();
- // if you're on the settings page, probably.
- browserHistory.push('/');
this.setDropdown('none');
}
@@ -184,7 +182,8 @@ class Nav extends React.PureComponent {
}
handleShare() {
- this.props.showShareModal();
+ const { username } = this.props.params;
+ this.props.showShareModal(this.props.project.id, this.props.project.name, username);
this.setDropdown('none');
}
@@ -717,6 +716,7 @@ Nav.propTypes = {
}).isRequired,
project: PropTypes.shape({
id: PropTypes.string,
+ name: PropTypes.string,
owner: PropTypes.shape({
id: PropTypes.string
})
@@ -742,7 +742,10 @@ Nav.propTypes = {
layout: PropTypes.oneOf(['dashboard', 'project']),
rootFile: PropTypes.shape({
id: PropTypes.string.isRequired
- }).isRequired
+ }).isRequired,
+ params: PropTypes.shape({
+ username: PropTypes.string
+ })
};
Nav.defaultProps = {
@@ -752,7 +755,10 @@ Nav.defaultProps = {
},
cmController: {},
layout: 'project',
- warnIfUnsavedChanges: undefined
+ warnIfUnsavedChanges: undefined,
+ params: {
+ username: undefined
+ }
};
function mapStateToProps(state) {
diff --git a/client/modules/IDE/components/SketchList.jsx b/client/modules/IDE/components/SketchList.jsx
index 83b90c2e..3777de2a 100644
--- a/client/modules/IDE/components/SketchList.jsx
+++ b/client/modules/IDE/components/SketchList.jsx
@@ -312,7 +312,7 @@ SketchListRowBase.propTypes = {
cloneProject: PropTypes.func.isRequired,
exportProjectAsZip: PropTypes.func.isRequired,
changeProjectName: PropTypes.func.isRequired,
- onAddToCollection: PropTypes.func.isRequired,
+ onAddToCollection: PropTypes.func.isRequired
};
function mapDispatchToPropsSketchListRow(dispatch) {
diff --git a/client/modules/User/components/Collection.jsx b/client/modules/User/components/Collection.jsx
index 6dec5e8c..477f1319 100644
--- a/client/modules/User/components/Collection.jsx
+++ b/client/modules/User/components/Collection.jsx
@@ -327,44 +327,46 @@ class Collection extends React.Component {
{this._renderLoader()}
{this.hasCollection() && this._renderCollectionMetadata()}
-
- {this._renderEmptyTable()}
- {this.hasCollectionItems() &&
-
-
-
- {this._renderFieldHeader('name', 'Name')}
- {this._renderFieldHeader('createdAt', 'Date Added')}
- {this._renderFieldHeader('user', 'Owner')}
- |
-
-
-
- {this.props.collection.items.map(item =>
- ())}
-
-
- }
- {
- this.state.isAddingSketches && (
-
}
- closeOverlay={this.hideAddSketches}
- isFixedHeight
- >
-
-
- )
- }
+
+
+ {this._renderEmptyTable()}
+ {this.hasCollectionItems() &&
+
+
+
+ {this._renderFieldHeader('name', 'Name')}
+ {this._renderFieldHeader('createdAt', 'Date Added')}
+ {this._renderFieldHeader('user', 'Owner')}
+ |
+
+
+
+ {this.props.collection.items.map(item =>
+ ())}
+
+
+ }
+ {
+ this.state.isAddingSketches && (
+
}
+ closeOverlay={this.hideAddSketches}
+ isFixedHeight
+ >
+
+
+ )
+ }
+
);
diff --git a/client/styles/components/_collection.scss b/client/styles/components/_collection.scss
index 3a98f78d..973397ef 100644
--- a/client/styles/components/_collection.scss
+++ b/client/styles/components/_collection.scss
@@ -1,8 +1,10 @@
.collection-container {
padding: #{24 / $base-font-size}rem #{66 / $base-font-size}rem;
+ position: relative;
flex: 1;
+ overflow: hidden;
display: flex;
- flex-direction: column;
+ flex-direction:column;
}
.collection-metadata {
@@ -114,15 +116,28 @@
flex-grow: 0;
}
-.collection-table-wrapper {
- width: #{1012 / $base-font-size}rem;
- margin: 0 auto;
+.collection-content {
+ display: flex;
+ flex-direction: column;
flex: 1;
+ overflow: hidden;
+ max-width: #{1012 / $base-font-size}rem;
+ margin: 0 auto;
+ width: 100%;
+
@include themify() {
border: 1px solid getThemifyVariable('modal-border-color');
}
}
+.collection-table-wrapper {
+ overflow-y: auto;
+ max-width: 100%;
+ min-height: 100%;
+}
+
+
+// maybe don't need this?
[data-has-items=false] .collection-table-wrapper {
display: flex;
justify-content: center;