Rename SaveButton to ProjectSaver and add docs
This commit is contained in:
1 parent
28ebb66136
commit
0f84d7739a
2 files changed
+20
-6
No files matched your search
@@ -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()}
|
||||
</MenuItem>
|
||||
)}</LoadButton>
|
||||
<SaveButton>{(saveProject, saveProps) => (
|
||||
<ProjectSaver>{(saveProject, saveProps) => (
|
||||
<MenuItem
|
||||
onClick={saveProject}
|
||||
{...saveProps}
|
||||
>
|
||||
Download to your computer
|
||||
</MenuItem>
|
||||
)}</SaveButton>
|
||||
)}</ProjectSaver>
|
||||
</MenuSection>
|
||||
</MenuBarMenu>
|
||||
</div>
|
||||
|
||||
@@ -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:
|
||||
*
|
||||
* <ProjectSaver>{(saveProject, props) => (
|
||||
* <MyCoolComponent
|
||||
* onClick={saveProject}
|
||||
* {...props}
|
||||
* />
|
||||
* )}</ProjectSaver>
|
||||
*/
|
||||
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);
|
||||
Reference in new issue
Block a user