From 39e1229c4ecf740f3648b1f766db8fb3c946856d Mon Sep 17 00:00:00 2001 From: Ben Wheeler Date: Wed, 19 Dec 2018 22:45:57 -0500 Subject: [PATCH 01/15] translate form validation string --- src/components/menu-bar/login-dropdown.jsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/menu-bar/login-dropdown.jsx b/src/components/menu-bar/login-dropdown.jsx index 0116d7342..fcfcd8117 100644 --- a/src/components/menu-bar/login-dropdown.jsx +++ b/src/components/menu-bar/login-dropdown.jsx @@ -35,6 +35,11 @@ const LoginDropdownMessages = defineMessages({ // eslint-disable-line no-unused- defaultMessage: 'Need Help?', description: 'Button text for user to indicate that they need help', id: 'login.needHelp' + }, + validationRequired: { + defaultMessage: 'This field is required', + description: 'Message to tell user they must enter text in a form field', + id: 'form.validationRequired' } }); From 8aade78dba329794caaa0383f8e7d5176a5143f5 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 21 Dec 2018 00:53:50 +0000 Subject: [PATCH 02/15] chore(package): update scratch-l10n to version 3.1.20181220222259 Closes #4173 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fd356bbff..1e5499ed3 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "rimraf": "^2.6.1", "scratch-audio": "0.1.0-prerelease.20181023202904", "scratch-blocks": "0.1.0-prerelease.1545162154", - "scratch-l10n": "3.1.20181213173343", + "scratch-l10n": "3.1.20181220222259", "scratch-paint": "0.2.0-prerelease.20181220194927", "scratch-render": "0.1.0-prerelease.20181220195236", "scratch-storage": "1.2.1", From 5f71c34013a13cb7212e062c3359c5c114523d09 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 21 Dec 2018 03:10:17 +0000 Subject: [PATCH 03/15] chore(package): update scratch-vm to version 0.2.0-prerelease.20181221030743 Closes #4174 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fd356bbff..740342f88 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "scratch-render": "0.1.0-prerelease.20181220195236", "scratch-storage": "1.2.1", "scratch-svg-renderer": "0.2.0-prerelease.20181220183040", - "scratch-vm": "0.2.0-prerelease.20181220195716", + "scratch-vm": "0.2.0-prerelease.20181221030743", "selenium-webdriver": "3.6.0", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", From 67aeb50ef374148aa49cfe7df66814a76525a586 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 21 Dec 2018 04:00:36 +0000 Subject: [PATCH 04/15] chore(package): update scratch-blocks to version 0.1.0-prerelease.1545364693 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 576ec254d..d5c6c551b 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "redux-throttle": "0.1.1", "rimraf": "^2.6.1", "scratch-audio": "0.1.0-prerelease.20181023202904", - "scratch-blocks": "0.1.0-prerelease.1545162154", + "scratch-blocks": "0.1.0-prerelease.1545364693", "scratch-l10n": "3.1.20181220222259", "scratch-paint": "0.2.0-prerelease.20181220194927", "scratch-render": "0.1.0-prerelease.20181220195236", From 3c53bac17b0a3cf4076ff6d9465e47d82e4d5137 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Fri, 21 Dec 2018 11:22:16 -0500 Subject: [PATCH 05/15] Revert "Make remixing/saving faster by marking all assets as clean to start." --- src/lib/vm-manager-hoc.jsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/lib/vm-manager-hoc.jsx b/src/lib/vm-manager-hoc.jsx index 5632266a2..926c25cd7 100644 --- a/src/lib/vm-manager-hoc.jsx +++ b/src/lib/vm-manager-hoc.jsx @@ -53,9 +53,6 @@ const vmManagerHOC = function (WrappedComponent) { loadProject () { return this.props.vm.loadProject(this.props.projectData) .then(() => { - // Mark all the assets as clean since they just got loaded - this.props.vm.assets.forEach(asset => (asset.clean = true)); - this.props.onLoadedProject(this.props.loadingState, this.props.canSave); // Wrap in a setTimeout because skin loading in // the renderer can be async. From be37452697e00928998f1a91c2300e654a364c05 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Fri, 21 Dec 2018 13:11:43 -0500 Subject: [PATCH 06/15] Update to storage 1.2.2 for clean asset flag fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d5c6c551b..3c59c42b0 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "scratch-l10n": "3.1.20181220222259", "scratch-paint": "0.2.0-prerelease.20181220194927", "scratch-render": "0.1.0-prerelease.20181220195236", - "scratch-storage": "1.2.1", + "scratch-storage": "1.2.2", "scratch-svg-renderer": "0.2.0-prerelease.20181220183040", "scratch-vm": "0.2.0-prerelease.20181221030743", "selenium-webdriver": "3.6.0", From 259d0796d48c43dc3cc9cb2dcab66022b842a3e4 Mon Sep 17 00:00:00 2001 From: Karishma Chadha Date: Fri, 21 Dec 2018 14:47:15 -0500 Subject: [PATCH 07/15] Update scratch-vm to pull in changes from scratch-sb1-converter --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3c59c42b0..1fa650f28 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "scratch-render": "0.1.0-prerelease.20181220195236", "scratch-storage": "1.2.2", "scratch-svg-renderer": "0.2.0-prerelease.20181220183040", - "scratch-vm": "0.2.0-prerelease.20181221030743", + "scratch-vm": "0.2.0-prerelease.20181221194157", "selenium-webdriver": "3.6.0", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", From 9c866e2b91a4a7e0c6a71507168d03096d5bed29 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Fri, 21 Dec 2018 21:17:49 +0000 Subject: [PATCH 08/15] chore(package): update scratch-vm to version 0.2.0-prerelease.20181221211506 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1fa650f28..9f54de22e 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "scratch-render": "0.1.0-prerelease.20181220195236", "scratch-storage": "1.2.2", "scratch-svg-renderer": "0.2.0-prerelease.20181220183040", - "scratch-vm": "0.2.0-prerelease.20181221194157", + "scratch-vm": "0.2.0-prerelease.20181221211506", "selenium-webdriver": "3.6.0", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", From 6b2cf976f6f8daef4f803f2ddc658785b3403b0f Mon Sep 17 00:00:00 2001 From: Karishma Chadha Date: Tue, 25 Dec 2018 13:17:52 -0500 Subject: [PATCH 09/15] Fix regex for extracting the project title from a .sb file --- src/containers/sb-file-uploader.jsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/containers/sb-file-uploader.jsx b/src/containers/sb-file-uploader.jsx index 8eeb04e4d..66d33c13c 100644 --- a/src/containers/sb-file-uploader.jsx +++ b/src/containers/sb-file-uploader.jsx @@ -80,8 +80,9 @@ class SBFileUploader extends React.Component { } getProjectTitleFromFilename (fileInputFilename) { if (!fileInputFilename) return ''; - // only parse title from files like "filename.sb2" or "filename.sb3" - const matches = fileInputFilename.match(/^(.*)\.sb[23]$/); + // only parse title with valid scratch project extensions + // (.sb, .sb2, and .sb3) + const matches = fileInputFilename.match(/^(.*)\.sb[23]?$/); if (!matches) return ''; return matches[1].substring(0, 100); // truncate project title to max 100 chars } From 41d910057b5c0526e83842aef6f980e14c24b5db Mon Sep 17 00:00:00 2001 From: Karishma Chadha Date: Wed, 26 Dec 2018 09:22:51 -0500 Subject: [PATCH 10/15] Update unit test that was checking that .sb files don't get project titles extracted. --- test/unit/containers/sb-file-uploader.test.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/containers/sb-file-uploader.test.jsx b/test/unit/containers/sb-file-uploader.test.jsx index 856b8f058..083dbfa2d 100644 --- a/test/unit/containers/sb-file-uploader.test.jsx +++ b/test/unit/containers/sb-file-uploader.test.jsx @@ -65,14 +65,14 @@ describe('SBFileUploader Container', () => { expect(projectName).toBe('my project is great'); }); - test('sets blank title with .sb filename', () => { + test('correctly sets title with .sb filename', () => { const wrapper = shallowWithIntl(getContainer(), {context: {store}}); const instance = wrapper .dive() // unwrap redux Connect(InjectIntl(SBFileUploader)) .dive() // unwrap InjectIntl(SBFileUploader) .instance(); // SBFileUploader const projectName = instance.getProjectTitleFromFilename('my project is great.sb'); - expect(projectName).toBe(''); + expect(projectName).toBe('my project is great'); }); test('sets blank title with filename with no extension', () => { From 4d0eb63ae2c0c4c097b20c4e93834dfcb29b77be Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 26 Dec 2018 15:35:37 +0000 Subject: [PATCH 11/15] chore(package): update scratch-render to version 0.1.0-prerelease.20181226153401 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9f54de22e..57e058a17 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "scratch-blocks": "0.1.0-prerelease.1545364693", "scratch-l10n": "3.1.20181220222259", "scratch-paint": "0.2.0-prerelease.20181220194927", - "scratch-render": "0.1.0-prerelease.20181220195236", + "scratch-render": "0.1.0-prerelease.20181226153401", "scratch-storage": "1.2.2", "scratch-svg-renderer": "0.2.0-prerelease.20181220183040", "scratch-vm": "0.2.0-prerelease.20181221211506", From faf73c92dd65af085aef9e84280568c55d953db6 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 26 Dec 2018 15:42:37 +0000 Subject: [PATCH 12/15] chore(package): update scratch-vm to version 0.2.0-prerelease.20181226154000 Closes #4198 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9f54de22e..a4654e7f8 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "scratch-render": "0.1.0-prerelease.20181220195236", "scratch-storage": "1.2.2", "scratch-svg-renderer": "0.2.0-prerelease.20181220183040", - "scratch-vm": "0.2.0-prerelease.20181221211506", + "scratch-vm": "0.2.0-prerelease.20181226154000", "selenium-webdriver": "3.6.0", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", From 9cd41199c5a1408a185d66b804820fc4d2575fb1 Mon Sep 17 00:00:00 2001 From: picklesrus Date: Wed, 26 Dec 2018 16:26:34 -0500 Subject: [PATCH 13/15] Fix #4203 by checking whether a target exists before asking whether it has an variables --- src/lib/blocks.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/blocks.js b/src/lib/blocks.js index 601804c65..eadf6d6ff 100644 --- a/src/lib/blocks.js +++ b/src/lib/blocks.js @@ -260,8 +260,12 @@ export default function (vm) { return stageOptions.concat(stageVariableMenuItems); } // Get all the local variables (no lists) and add them to the menu. - const spriteVariableOptions = - vm.runtime.getSpriteTargetByName(selectedItem).getAllVariableNamesInScopeByType('', true); + const target = vm.runtime.getSpriteTargetByName(selectedItem); + let spriteVariableOptions = []; + // The target should exist, but there are ways for it not to (e.g. #4203). + if (target) { + spriteVariableOptions = target.getAllVariableNamesInScopeByType('', true); + } const spriteVariableMenuItems = spriteVariableOptions.map(variable => [variable, variable]); return spriteOptions.concat(spriteVariableMenuItems); } From f05a7d1edcef799b113fccf36ea995de40c9eda5 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 26 Dec 2018 21:42:11 +0000 Subject: [PATCH 14/15] chore(package): update scratch-vm to version 0.2.0-prerelease.20181226213940 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b2f3cb235..625e7a037 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "scratch-render": "0.1.0-prerelease.20181226153401", "scratch-storage": "1.2.2", "scratch-svg-renderer": "0.2.0-prerelease.20181220183040", - "scratch-vm": "0.2.0-prerelease.20181226154000", + "scratch-vm": "0.2.0-prerelease.20181226213940", "selenium-webdriver": "3.6.0", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", From 70eb240a7c322f06e312f3e2e5cf7794daf4f54d Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Thu, 27 Dec 2018 10:34:02 -0500 Subject: [PATCH 15/15] Use the loading screen in player mode --- src/components/gui/gui.jsx | 1 + src/components/loader/loader.css | 2 +- src/components/stage-wrapper/stage-wrapper.jsx | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/gui/gui.jsx b/src/components/gui/gui.jsx index b1f6cc44e..a203310b1 100644 --- a/src/components/gui/gui.jsx +++ b/src/components/gui/gui.jsx @@ -141,6 +141,7 @@ const GUIComponent = props => { diff --git a/src/components/loader/loader.css b/src/components/loader/loader.css index 1b6ab40ce..a1f0003c3 100644 --- a/src/components/loader/loader.css +++ b/src/components/loader/loader.css @@ -2,7 +2,7 @@ @import "../../css/z-index.css"; .background { - position: fixed; + position: absolute; top: 0; left: 0; width: 100%; diff --git a/src/components/stage-wrapper/stage-wrapper.jsx b/src/components/stage-wrapper/stage-wrapper.jsx index 021f6742b..821e2c001 100644 --- a/src/components/stage-wrapper/stage-wrapper.jsx +++ b/src/components/stage-wrapper/stage-wrapper.jsx @@ -6,6 +6,7 @@ import Box from '../box/box.jsx'; import {STAGE_DISPLAY_SIZES} from '../../lib/layout-constants.js'; import StageHeader from '../../containers/stage-header.jsx'; import Stage from '../../containers/stage.jsx'; +import Loader from '../loader/loader.jsx'; import styles from './stage-wrapper.css'; @@ -13,6 +14,7 @@ const StageWrapperComponent = function (props) { const { isRtl, isRendererSupported, + loading, stageSize, vm } = props; @@ -38,6 +40,9 @@ const StageWrapperComponent = function (props) { null } + {loading ? ( + + ) : null} ); }; @@ -45,6 +50,7 @@ const StageWrapperComponent = function (props) { StageWrapperComponent.propTypes = { isRendererSupported: PropTypes.bool.isRequired, isRtl: PropTypes.bool, + loading: PropTypes.bool, stageSize: PropTypes.oneOf(Object.keys(STAGE_DISPLAY_SIZES)).isRequired, vm: PropTypes.instanceOf(VM).isRequired };