Initial commit of 001code-html Scratch frontend project.
Includes scratch-gui, scratch-vm, scratch-blocks, scratch-render, scratch-l10n, and deployment config. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
97
scratch-gui/src/containers/alert.jsx
Normal file
97
scratch-gui/src/containers/alert.jsx
Normal file
@@ -0,0 +1,97 @@
|
||||
import React from 'react';
|
||||
import bindAll from 'lodash.bindall';
|
||||
import PropTypes from 'prop-types';
|
||||
import {connect} from 'react-redux';
|
||||
import SB3Downloader from './sb3-downloader.jsx';
|
||||
import AlertComponent from '../components/alerts/alert.jsx';
|
||||
import {openConnectionModal} from '../reducers/modals';
|
||||
import {setConnectionModalExtensionId} from '../reducers/connection-modal';
|
||||
import {manualUpdateProject} from '../reducers/project-state';
|
||||
|
||||
class Alert extends React.Component {
|
||||
constructor (props) {
|
||||
super(props);
|
||||
bindAll(this, [
|
||||
'handleOnCloseAlert',
|
||||
'handleOnReconnect'
|
||||
]);
|
||||
}
|
||||
handleOnCloseAlert () {
|
||||
this.props.onCloseAlert(this.props.index);
|
||||
}
|
||||
handleOnReconnect () {
|
||||
this.props.onOpenConnectionModal(this.props.extensionId);
|
||||
this.handleOnCloseAlert();
|
||||
}
|
||||
render () {
|
||||
const {
|
||||
closeButton,
|
||||
content,
|
||||
extensionName,
|
||||
index, // eslint-disable-line no-unused-vars
|
||||
level,
|
||||
iconSpinner,
|
||||
iconURL,
|
||||
message,
|
||||
onSaveNow,
|
||||
showDownload,
|
||||
showReconnect,
|
||||
showSaveNow
|
||||
} = this.props;
|
||||
return (
|
||||
<SB3Downloader>{(_, downloadProject) => (
|
||||
<AlertComponent
|
||||
closeButton={closeButton}
|
||||
content={content}
|
||||
extensionName={extensionName}
|
||||
iconSpinner={iconSpinner}
|
||||
iconURL={iconURL}
|
||||
level={level}
|
||||
message={message}
|
||||
showDownload={showDownload}
|
||||
showReconnect={showReconnect}
|
||||
showSaveNow={showSaveNow}
|
||||
onCloseAlert={this.handleOnCloseAlert}
|
||||
onDownload={downloadProject}
|
||||
onReconnect={this.handleOnReconnect}
|
||||
onSaveNow={onSaveNow}
|
||||
/>
|
||||
)}</SB3Downloader>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const mapStateToProps = () => ({});
|
||||
|
||||
const mapDispatchToProps = dispatch => ({
|
||||
onOpenConnectionModal: id => {
|
||||
dispatch(setConnectionModalExtensionId(id));
|
||||
dispatch(openConnectionModal());
|
||||
},
|
||||
onSaveNow: () => {
|
||||
dispatch(manualUpdateProject());
|
||||
}
|
||||
});
|
||||
|
||||
Alert.propTypes = {
|
||||
closeButton: PropTypes.bool,
|
||||
content: PropTypes.element,
|
||||
extensionId: PropTypes.string,
|
||||
extensionName: PropTypes.string,
|
||||
iconSpinner: PropTypes.bool,
|
||||
iconURL: PropTypes.string,
|
||||
index: PropTypes.number,
|
||||
level: PropTypes.string.isRequired,
|
||||
message: PropTypes.string,
|
||||
onCloseAlert: PropTypes.func.isRequired,
|
||||
onOpenConnectionModal: PropTypes.func,
|
||||
onSaveNow: PropTypes.func,
|
||||
showDownload: PropTypes.bool,
|
||||
showReconnect: PropTypes.bool,
|
||||
showSaveNow: PropTypes.bool
|
||||
};
|
||||
|
||||
export default connect(
|
||||
mapStateToProps,
|
||||
mapDispatchToProps
|
||||
)(Alert);
|
||||
Reference in New Issue
Block a user