Skip to content

Commit cf52db8

Browse files
committed
'Back to Editor' links to the last opened project.
1 parent 2255bf1 commit cf52db8

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

client/components/Nav.jsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { logoutUser } from '../modules/User/actions';
1818
import getConfig from '../utils/getConfig';
1919
import { metaKeyName, metaKey } from '../utils/metaKey';
2020
import { getIsUserOwner } from '../modules/IDE/selectors/users';
21+
import { selectSketchPath } from '../modules/IDE/selectors/project';
2122

2223
import CaretLeftIcon from '../images/left-arrow.svg';
2324
import TriangleIcon from '../images/down-filled-triangle.svg';
@@ -245,7 +246,7 @@ class Nav extends React.PureComponent {
245246
/>
246247
</li>
247248
<li className="nav__item nav__item--no-icon">
248-
<Link to="/" className="nav__back-link">
249+
<Link to={this.props.editorLink} className="nav__back-link">
249250
<CaretLeftIcon
250251
className="nav__back-icon"
251252
focusable="false"
@@ -980,7 +981,8 @@ Nav.propTypes = {
980981
t: PropTypes.func.isRequired,
981982
setLanguage: PropTypes.func.isRequired,
982983
language: PropTypes.string.isRequired,
983-
isUserOwner: PropTypes.bool.isRequired
984+
isUserOwner: PropTypes.bool.isRequired,
985+
editorLink: PropTypes.string
984986
};
985987

986988
Nav.defaultProps = {
@@ -993,7 +995,8 @@ Nav.defaultProps = {
993995
warnIfUnsavedChanges: undefined,
994996
params: {
995997
username: undefined
996-
}
998+
},
999+
editorLink: '/'
9971000
};
9981001

9991002
function mapStateToProps(state) {
@@ -1003,7 +1006,8 @@ function mapStateToProps(state) {
10031006
unsavedChanges: state.ide.unsavedChanges,
10041007
rootFile: state.files.filter((file) => file.name === 'root')[0],
10051008
language: state.preferences.language,
1006-
isUserOwner: getIsUserOwner(state)
1009+
isUserOwner: getIsUserOwner(state),
1010+
editorLink: selectSketchPath(state)
10071011
};
10081012
}
10091013

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { createSelector } from 'reselect';
2+
3+
export const selectProjectOwner = (state) => state.project.owner;
4+
export const selectProjectId = (state) => state.project.id;
5+
6+
export const selectSketchPath = createSelector(
7+
selectProjectOwner,
8+
selectProjectId,
9+
(owner, id) => (owner && id ? `/${owner.username}/sketches/${id}` : '/')
10+
);

0 commit comments

Comments
 (0)