mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2025-02-17 00:21:20 -05:00
adds changes from previous PR
This commit is contained in:
parent
99e3a469a1
commit
60965bd24b
5 changed files with 38 additions and 18 deletions
|
@ -11,9 +11,19 @@ class Storage extends ScratchStorage {
|
|||
super();
|
||||
this.addWebSource(
|
||||
[this.AssetType.Project],
|
||||
projectAsset => `${PROJECT_HOST}/${projectAsset.assetId}`
|
||||
this.getProjectGetConfig.bind(this)
|
||||
);
|
||||
}
|
||||
|
||||
setProjectToken (projectToken) {
|
||||
this.projectToken = projectToken;
|
||||
}
|
||||
|
||||
getProjectGetConfig (projectAsset) {
|
||||
const path = `${PROJECT_HOST}/${projectAsset.assetId}`;
|
||||
const qs = this.projectToken ? `?token=${this.projectToken}` : '';
|
||||
return path + qs;
|
||||
}
|
||||
}
|
||||
|
||||
const storage = new Storage();
|
||||
|
|
|
@ -40,19 +40,23 @@ class EmbedView extends React.Component {
|
|||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<React.Fragment>
|
||||
<Meta projectInfo={this.props.projectInfo} />
|
||||
<IntlGUI
|
||||
assetHost={this.props.assetHost}
|
||||
basePath="/"
|
||||
className="gui"
|
||||
projectHost={this.props.projectHost}
|
||||
projectId={this.state.projectId}
|
||||
projectTitle={this.props.projectInfo.title}
|
||||
/>
|
||||
</React.Fragment>
|
||||
);
|
||||
if (this.props.projectInfo && this.props.projectInfo.project_token){
|
||||
return (
|
||||
<React.Fragment>
|
||||
<Meta projectInfo={this.props.projectInfo} />
|
||||
<IntlGUI
|
||||
assetHost={this.props.assetHost}
|
||||
basePath="/"
|
||||
className="gui"
|
||||
projectHost={this.props.projectHost}
|
||||
projectId={this.state.projectId}
|
||||
projectTitle={this.props.projectInfo.title}
|
||||
projectToken={this.props.projectInfo.project_token}
|
||||
/>
|
||||
</React.Fragment>
|
||||
);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -359,6 +359,7 @@ const PreviewPresentation = ({
|
|||
isFullScreen={isFullScreen}
|
||||
previewInfoVisible="false"
|
||||
projectHost={projectHost}
|
||||
projectToken={projectInfo.project_token}
|
||||
projectId={projectId}
|
||||
onGreenFlag={onGreenFlag}
|
||||
onProjectLoaded={onProjectLoaded}
|
||||
|
|
|
@ -143,7 +143,6 @@ class Preview extends React.Component {
|
|||
this.props.sessionStatus === sessionActions.Status.FETCHED) ||
|
||||
(this.state.projectId !== prevState.projectId))) {
|
||||
this.fetchCommunityData();
|
||||
this.getProjectData(this.state.projectId, true /* Show cloud/username alerts */);
|
||||
if (this.state.justShared) {
|
||||
this.setState({ // eslint-disable-line react/no-did-update-set-state
|
||||
justShared: false
|
||||
|
@ -160,6 +159,10 @@ class Preview extends React.Component {
|
|||
});
|
||||
}
|
||||
}
|
||||
if (this.props.projectInfo.id !== prevProps.projectInfo.id) {
|
||||
storage.setProjectToken(this.props.projectInfo.project_token);
|
||||
this.loadProjectData(this.state.projectId, true /* Show cloud/username alerts */);
|
||||
}
|
||||
if (this.props.projectInfo.id !== prevProps.projectInfo.id) {
|
||||
if (typeof this.props.projectInfo.id === 'undefined') {
|
||||
this.initCounts(0, 0);
|
||||
|
@ -198,7 +201,8 @@ class Preview extends React.Component {
|
|||
|
||||
// Switching out of editor mode, refresh data that comes from project json
|
||||
if (this.props.playerMode && !prevProps.playerMode) {
|
||||
this.getProjectData(
|
||||
storage.setProjectToken(this.props.projectInfo.project_token);
|
||||
this.loadProjectData(
|
||||
this.state.projectId,
|
||||
false // Do not show cloud/username alerts again
|
||||
);
|
||||
|
@ -325,7 +329,7 @@ class Preview extends React.Component {
|
|||
}
|
||||
}
|
||||
}
|
||||
getProjectData (projectId, showAlerts) {
|
||||
loadProjectData (projectId, showAlerts) {
|
||||
if (projectId <= 0) return 0;
|
||||
storage
|
||||
.load(storage.AssetType.Project, projectId, storage.DataFormat.JSON)
|
||||
|
|
|
@ -31,5 +31,6 @@ export const projectShape = shape({
|
|||
remix: shape({
|
||||
parent: number,
|
||||
root: number
|
||||
})
|
||||
}),
|
||||
project_token: string
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue