Skip to content
Snippets Groups Projects
Commit 3ba65eaa authored by Ben Wheeler's avatar Ben Wheeler
Browse files

renamed project loader and saver to sb3 loader and saver to local

parent f8971ca1
No related branches found
No related tags found
No related merge requests found
......@@ -10,13 +10,13 @@ import Button from '../button/button.jsx';
import {ComingSoonTooltip} from '../coming-soon/coming-soon.jsx';
import Divider from '../divider/divider.jsx';
import LanguageSelector from '../../containers/language-selector.jsx';
import ProjectLoaderFromPC from '../../containers/project-loader-from-pc.jsx';
import SB3LoaderFromLocal from '../../containers/sb3-loader-from-local.jsx';
import MenuBarMenu from './menu-bar-menu.jsx';
import {MenuItem, MenuSection} from '../menu/menu.jsx';
import ProjectTitleInput from './project-title-input.jsx';
import AccountNav from '../../containers/account-nav.jsx';
import LoginDropdown from './login-dropdown.jsx';
import ProjectSaverToPC from '../../containers/project-saver-to-pc.jsx';
import SB3SaverToLocal from '../../containers/sb3-saver-to-local.jsx';
import DeletionRestorer from '../../containers/deletion-restorer.jsx';
import TurboMode from '../../containers/turbo-mode.jsx';
......@@ -327,7 +327,7 @@ class MenuBar extends React.Component {
</MenuItemTooltip>
</MenuSection>
<MenuSection>
<ProjectLoaderFromPC
<SB3LoaderFromLocal
onLoadFinished={this.handleProjectLoadFinished}
onUpdateProjectTitle={this.props.onUpdateProjectTitle}
>
......@@ -337,15 +337,16 @@ class MenuBar extends React.Component {
>
<FormattedMessage
defaultMessage="Load from your computer"
description={'Menu bar item for uploading a ' +
'project from your computer'}
description={
'Menu bar item for uploading a project from your computer'
}
id="gui.menuBar.uploadFromComputer"
/>
{renderFileInput()}
</MenuItem>
)}
</ProjectLoaderFromPC>
<ProjectSaverToPC>{downloadProject => (
</SB3LoaderFromLocal>
<SB3SaverToLocal>{downloadProject => (
<MenuItem
onClick={this.handleCloseFileMenuAndThen(downloadProject)}
>
......@@ -355,7 +356,7 @@ class MenuBar extends React.Component {
id="gui.menuBar.downloadToComputer"
/>
</MenuItem>
)}</ProjectSaverToPC>
)}</SB3SaverToLocal>
</MenuSection>
</MenuBarMenu>
</div>
......
......@@ -15,30 +15,30 @@ import {
} from '../reducers/modals';
/**
* Project loader component passes a file input, load handler and props to its child.
* SB3LoaderFromLocal component passes a file input, load handler and props to its child.
* It expects this child to be a function with the signature
* function (renderFileInput, loadProject, props) {}
* function (renderFileInput, loadProject) {}
* The component can then be used to attach project loading functionality
* to any other component:
*
* <ProjectLoaderFromPC>{(renderFileInput, loadProject) => (
* <SB3LoaderFromLocal>{(renderFileInput, loadProject) => (
* <MyCoolComponent
* onClick={loadProject}
* >
* {renderFileInput()}
* </MyCoolComponent>
* )}</ProjectLoaderFromPC>
* )}</SB3LoaderFromLocal>
*/
const messages = defineMessages({
loadError: {
id: 'gui.ProjectLoaderFromPC.loadError',
id: 'gui.SB3LoaderFromLocal.loadError',
defaultMessage: 'The project file that was selected failed to load.',
description: 'An error that displays when a local project file fails to load.'
}
});
class ProjectLoaderFromPC extends React.Component {
class SB3LoaderFromLocal extends React.Component {
constructor (props) {
super(props);
bindAll(this, [
......@@ -61,9 +61,7 @@ class ProjectLoaderFromPC extends React.Component {
nonInteraction: true
});
this.props.closeLoadingState();
if (this.props.onLoadFinished) {
this.props.onLoadFinished();
}
this.props.onLoadFinished();
// Reset the file input after project is loaded
// This is necessary in case the user wants to reload a project
thisFileInput.value = null;
......@@ -72,9 +70,7 @@ class ProjectLoaderFromPC extends React.Component {
log.warn(error);
alert(this.props.intl.formatMessage(messages.loadError)); // eslint-disable-line no-alert
this.props.closeLoadingState();
if (this.props.onLoadFinished) {
this.props.onLoadFinished();
}
this.props.onLoadFinished();
// Reset the file input after project is loaded
// This is necessary in case the user wants to reload a project
thisFileInput.value = null;
......@@ -117,7 +113,7 @@ class ProjectLoaderFromPC extends React.Component {
}
}
ProjectLoaderFromPC.propTypes = {
SB3LoaderFromLocal.propTypes = {
children: PropTypes.func,
closeLoadingState: PropTypes.func,
intl: intlShape.isRequired,
......@@ -129,7 +125,9 @@ ProjectLoaderFromPC.propTypes = {
loadProject: PropTypes.func
})
};
SB3LoaderFromLocal.defaultProps = {
onLoadFinished: () => {}
};
const mapStateToProps = state => ({
vm: state.scratchGui.vm
});
......@@ -149,4 +147,4 @@ const mapDispatchToProps = dispatch => ({
export default connect(
mapStateToProps,
mapDispatchToProps
)(injectIntl(ProjectLoaderFromPC));
)(injectIntl(SB3LoaderFromLocal));
......@@ -11,14 +11,14 @@ import {projectTitleInitialState} from '../reducers/project-title';
* The component can then be used to attach project saving functionality
* to any other component:
*
* <ProjectSaverToPC>{(downloadProject, props) => (
* <SB3SaverToLocal>{(downloadProject, props) => (
* <MyCoolComponent
* onClick={downloadProject}
* {...props}
* />
* )}</ProjectSaverToPC>
* )}</SB3SaverToLocal>
*/
class ProjectSaverToPC extends React.Component {
class SB3SaverToLocal extends React.Component {
constructor (props) {
super(props);
bindAll(this, [
......@@ -65,7 +65,7 @@ const getProjectFilename = (curTitle, defaultTitle) => {
return `${filenameTitle.substring(0, 100)}.sb3`;
};
ProjectSaverToPC.propTypes = {
SB3SaverToLocal.propTypes = {
children: PropTypes.func,
onSaveFinished: PropTypes.func,
projectFilename: PropTypes.string,
......@@ -80,4 +80,4 @@ const mapStateToProps = state => ({
export default connect(
mapStateToProps,
() => ({}) // omit dispatch prop
)(ProjectSaverToPC);
)(SB3SaverToLocal);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment