diff --git a/src/components/menu-bar/menu-bar.jsx b/src/components/menu-bar/menu-bar.jsx
index 82cd319f5..f84f432f8 100644
--- a/src/components/menu-bar/menu-bar.jsx
+++ b/src/components/menu-bar/menu-bar.jsx
@@ -11,7 +11,7 @@ import LanguageSelector from '../../containers/language-selector.jsx';
import LoadButton from '../../containers/load-button.jsx';
import Menu from '../../containers/menu.jsx';
import {MenuItem, MenuSection} from '../menu/menu.jsx';
-import SaveButton from '../../containers/save-button.jsx';
+import ProjectSaver from '../../containers/project-saver.jsx';
import {openFeedbackForm} from '../../reducers/modals';
import {
@@ -147,14 +147,14 @@ const MenuBar = props => (
{renderFileInput()}
)}
- {(saveProject, saveProps) => (
+ {(saveProject, saveProps) => (
- )}
+ )}
diff --git a/src/containers/save-button.jsx b/src/containers/project-saver.jsx
similarity index 73%
rename from src/containers/save-button.jsx
rename to src/containers/project-saver.jsx
index cb840ac33..4886ee639 100644
--- a/src/containers/save-button.jsx
+++ b/src/containers/project-saver.jsx
@@ -3,7 +3,21 @@ import PropTypes from 'prop-types';
import React from 'react';
import {connect} from 'react-redux';
-class SaveButton extends React.Component {
+/**
+ * Project saver component passes a saveProject function to its child.
+ * It expects this child to be a function with the signature
+ * function (saveProject, props) {}
+ * The component can then be used to attach project saving functionality
+ * to any other component:
+ *
+ * {(saveProject, props) => (
+ *
+ * )}
+ */
+class ProjectSaver extends React.Component {
constructor (props) {
super(props);
bindAll(this, [
@@ -41,7 +55,7 @@ class SaveButton extends React.Component {
}
}
-SaveButton.propTypes = {
+ProjectSaver.propTypes = {
children: PropTypes.func,
vm: PropTypes.shape({
saveProjectSb3: PropTypes.func
@@ -55,4 +69,4 @@ const mapStateToProps = state => ({
export default connect(
mapStateToProps,
() => ({}) // omit dispatch prop
-)(SaveButton);
+)(ProjectSaver);