-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Initial rough sprite/costume/backdrop libraries #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks really good overall!
When you resolve conflicts, would you please follow the pattern for passing down props via the GUI component?
Mostly just style nits other than that. This was really quick, thanks!
scale * img.width, | ||
scale * img.height); | ||
context.rotate(-angle); | ||
context.translate(-contextTranslateX, -contextTranslateY); |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
src/components/library.js
Outdated
render () { | ||
let gridItems = []; | ||
let itemId = 0; | ||
for (let dataItem of this.props.data) { |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
} | ||
this.props.vm.addBackdrop(vmBackdrop); | ||
} | ||
render () { |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
src/containers/gui.js
Outdated
<SpriteSelector vm={this.props.vm} | ||
openNewSprite={() => this.openModal('sprite-library')} | ||
openNewCostume={() => this.openModal('costume-library')} | ||
openNewBackdrop={() => this.openModal('backdrop-library')} /> |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
src/containers/sprite-library.js
Outdated
} | ||
componentWillReceiveProps (nextProps) { | ||
if (nextProps.visible && this.state.data.length === 0) { | ||
this.props.mediaLibrary.getMediaLibrary('sprite', this.setData.bind(this)); |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
src/containers/sprite-library.js
Outdated
name: libraryItem.objName, | ||
md5: libraryItem.costumes[0].baseLayerMD5, | ||
json: libraryKey | ||
} |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
src/components/costume-canvas.js
Outdated
*/ | ||
|
||
class CostumeCanvas extends React.Component { | ||
render () { |
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
This comment was marked as abuse.
This comment was marked as abuse.
Sorry, something went wrong.
# Conflicts: # package.json # src/containers/gui.js
@rschamp Thanks for the quick review. I resolved the conflicts and followed the props pattern you started in the places where it was. I'm a little confused about where else that pattern should be followed though. Everywhere? Should we never access this.props except to unpack it? |
I think it should just be followed in container components' render methods, since the container will wrap the presentation component, and we want to be able to override the presentation component props via the container component. Not sure how scalable this is but it was useful at least once already working on the audio gui prototype. |
Thanks! |
Update from official repo
# [4.1.0-hotfix.1](v4.0.38...v4.1.0-hotfix.1) (2024-10-19) ### Bug Fixes * add pinch to zoom support ([#21](#21)) ([a690749](a690749)) * add support for Scratch-style procedures ([#6](#6)) ([df207e4](df207e4)) * adjust key event filtering to fix the when key pressed block ([#13](#13)) ([06b011f](06b011f)) * allow typing into comments ([#15](#15)) ([668fbb9](668fbb9)) * avoid clearing the state of the sensing_of block by refreshing the toolbox ([#28](#28)) ([9bd036b](9bd036b)) * call reportValue on the ScratchBlocks module instead of the workspace ([#11](#11)) ([1898c52](1898c52)) * call the new glow methods on ScratchBlocks ([#12](#12)) ([be4386d](be4386d)) * fix bug that prevented displaying the procedure editor modal on mobile ([#26](#26)) ([8b1bf24](8b1bf24)) * make dropdown menu shadow block colors consistent ([#22](#22)) ([45d4803](45d4803)) * modify inject options to reflect Scratch behaviors ([#5](#5)) ([59bf3c5](59bf3c5)) * only refresh the toolbox when procedures are created via undo ([#19](#19)) ([f6dfd53](f6dfd53)) * partially roll back flyout optimization ([#25](#25)) ([1745c59](1745c59)) * patch the getCheckboxState method in the new flyout ([#7](#7)) ([dd98dd8](dd98dd8)) * preserve toolbox scroll position when switching between sprites/the stage ([#10](#10)) ([c8bc880](c8bc880)) * prevent exception when switching languages ([#27](#27)) ([d174ae9](d174ae9)) * reenable the Scratch colour eyedropper ([a7b1a10](a7b1a10)) * select extension categories when added ([#8](#8)) ([2d58403](2d58403)) * show the correct toolbox based on sprites or the stage being selected ([#4](#4)) ([dbbb251](dbbb251)) * specify the function to be used for prompting about variables ([#17](#17)) ([ee80f13](ee80f13)) * temporarily disable functionality in scratch-gui for compatibility with patched scratch-blocks ([#1](#1)) ([905f043](905f043)) * update the toolbox in response to procedure deletion/creation ([#18](#18)) ([505011d](505011d)) * Use toolboxitemid instead of id as the identifier attribute for toolbox categories ([#9](#9)) ([077415b](077415b)) ### Features * plumb Scratch variable support into the UI ([#16](#16)) ([c92f244](c92f244))
# [4.1.0-beta.1](v4.0.38...v4.1.0-beta.1) (2024-10-19) ### Bug Fixes * add pinch to zoom support ([#21](#21)) ([a690749](a690749)) * add support for Scratch-style procedures ([#6](#6)) ([df207e4](df207e4)) * adjust key event filtering to fix the when key pressed block ([#13](#13)) ([06b011f](06b011f)) * allow typing into comments ([#15](#15)) ([668fbb9](668fbb9)) * avoid clearing the state of the sensing_of block by refreshing the toolbox ([#28](#28)) ([9bd036b](9bd036b)) * call reportValue on the ScratchBlocks module instead of the workspace ([#11](#11)) ([1898c52](1898c52)) * call the new glow methods on ScratchBlocks ([#12](#12)) ([be4386d](be4386d)) * fix bug that prevented displaying the procedure editor modal on mobile ([#26](#26)) ([8b1bf24](8b1bf24)) * make dropdown menu shadow block colors consistent ([#22](#22)) ([45d4803](45d4803)) * modify inject options to reflect Scratch behaviors ([#5](#5)) ([59bf3c5](59bf3c5)) * only refresh the toolbox when procedures are created via undo ([#19](#19)) ([f6dfd53](f6dfd53)) * partially roll back flyout optimization ([#25](#25)) ([1745c59](1745c59)) * patch the getCheckboxState method in the new flyout ([#7](#7)) ([dd98dd8](dd98dd8)) * preserve toolbox scroll position when switching between sprites/the stage ([#10](#10)) ([c8bc880](c8bc880)) * prevent exception when switching languages ([#27](#27)) ([d174ae9](d174ae9)) * reenable the Scratch colour eyedropper ([a7b1a10](a7b1a10)) * **release:** release beta branch under beta label(?) ([e5cc322](e5cc322)) * select extension categories when added ([#8](#8)) ([2d58403](2d58403)) * show the correct toolbox based on sprites or the stage being selected ([#4](#4)) ([dbbb251](dbbb251)) * specify the function to be used for prompting about variables ([#17](#17)) ([ee80f13](ee80f13)) * temporarily disable functionality in scratch-gui for compatibility with patched scratch-blocks ([#1](#1)) ([905f043](905f043)) * update the toolbox in response to procedure deletion/creation ([#18](#18)) ([505011d](505011d)) * Use toolboxitemid instead of id as the identifier attribute for toolbox categories ([#9](#9)) ([077415b](077415b)) ### Features * plumb Scratch variable support into the UI ([#16](#16)) ([c92f244](c92f244))
# [4.1.0-spork.1](v4.0.39...v4.1.0-spork.1) (2024-10-21) ### Bug Fixes * add pinch to zoom support ([#21](#21)) ([a690749](a690749)) * add support for Scratch-style procedures ([#6](#6)) ([df207e4](df207e4)) * adjust key event filtering to fix the when key pressed block ([#13](#13)) ([06b011f](06b011f)) * allow typing into comments ([#15](#15)) ([668fbb9](668fbb9)) * avoid clearing the state of the sensing_of block by refreshing the toolbox ([#28](#28)) ([9bd036b](9bd036b)) * call reportValue on the ScratchBlocks module instead of the workspace ([#11](#11)) ([1898c52](1898c52)) * call the new glow methods on ScratchBlocks ([#12](#12)) ([be4386d](be4386d)) * fix bug that prevented displaying the procedure editor modal on mobile ([#26](#26)) ([8b1bf24](8b1bf24)) * make dropdown menu shadow block colors consistent ([#22](#22)) ([45d4803](45d4803)) * modify inject options to reflect Scratch behaviors ([#5](#5)) ([59bf3c5](59bf3c5)) * only refresh the toolbox when procedures are created via undo ([#19](#19)) ([f6dfd53](f6dfd53)) * partially roll back flyout optimization ([#25](#25)) ([1745c59](1745c59)) * patch the getCheckboxState method in the new flyout ([#7](#7)) ([dd98dd8](dd98dd8)) * preserve toolbox scroll position when switching between sprites/the stage ([#10](#10)) ([c8bc880](c8bc880)) * prevent exception when switching languages ([#27](#27)) ([d174ae9](d174ae9)) * reenable the Scratch colour eyedropper ([a7b1a10](a7b1a10)) * **release:** release beta branch under beta label(?) ([17c5b19](17c5b19)) * select extension categories when added ([#8](#8)) ([2d58403](2d58403)) * show the correct toolbox based on sprites or the stage being selected ([#4](#4)) ([dbbb251](dbbb251)) * specify the function to be used for prompting about variables ([#17](#17)) ([ee80f13](ee80f13)) * temporarily disable functionality in scratch-gui for compatibility with patched scratch-blocks ([#1](#1)) ([905f043](905f043)) * update the toolbox in response to procedure deletion/creation ([#18](#18)) ([505011d](505011d)) * Use toolboxitemid instead of id as the identifier attribute for toolbox categories ([#9](#9)) ([077415b](077415b)) ### Features * plumb Scratch variable support into the UI ([#16](#16)) ([c92f244](c92f244))
# [5.2.0-hotfix.1](v5.1.36...v5.2.0-hotfix.1) (2025-02-13) ### Bug Fixes * add pinch to zoom support ([#21](#21)) ([a690749](a690749)) * add support for Scratch-style procedures ([#6](#6)) ([df207e4](df207e4)) * allow typing into comments ([#15](#15)) ([668fbb9](668fbb9)) * avoid clearing the state of the sensing_of block by refreshing the toolbox ([#28](#28)) ([9bd036b](9bd036b)) * call reportValue on the ScratchBlocks module instead of the workspace ([#11](#11)) ([1898c52](1898c52)) * call the new glow methods on ScratchBlocks ([#12](#12)) ([be4386d](be4386d)) * fix bug that prevented displaying the procedure editor modal on mobile ([#26](#26)) ([8b1bf24](8b1bf24)) * fix preserving toolbox scroll position for new continuous toolbox plugin ([#30](#30)) ([b8f19dc](b8f19dc)) * make dropdown menu shadow block colors consistent ([#22](#22)) ([45d4803](45d4803)) * modify inject options to reflect Scratch behaviors ([#5](#5)) ([59bf3c5](59bf3c5)) * only refresh the toolbox when procedures are created via undo ([#19](#19)) ([f6dfd53](f6dfd53)) * partially roll back flyout optimization ([#25](#25)) ([1745c59](1745c59)) * patch the getCheckboxState method in the new flyout ([#7](#7)) ([dd98dd8](dd98dd8)) * preserve toolbox scroll position when switching between sprites/the stage ([#10](#10)) ([c8bc880](c8bc880)) * prevent exception when switching languages ([#27](#27)) ([d174ae9](d174ae9)) * reenable the Scratch colour eyedropper ([a7b1a10](a7b1a10)) * **release:** release beta branch under beta label(?) ([17c5b19](17c5b19)) * select extension categories when added ([#8](#8)) ([2d58403](2d58403)) * show the correct toolbox based on sprites or the stage being selected ([#4](#4)) ([dbbb251](dbbb251)) * specify the function to be used for prompting about variables ([#17](#17)) ([ee80f13](ee80f13)) * temporarily disable functionality in scratch-gui for compatibility with patched scratch-blocks ([#1](#1)) ([905f043](905f043)) * update "colour" property names for dark theme and mocks ([de06a2f](de06a2f)) * update the toolbox in response to procedure deletion/creation ([#18](#18)) ([505011d](505011d)) * Use toolboxitemid instead of id as the identifier attribute for toolbox categories ([#9](#9)) ([077415b](077415b)) ### Features * plumb Scratch variable support into the UI ([#16](#16)) ([c92f244](c92f244))
# [5.2.0-spork.1](v5.1.103...v5.2.0-spork.1) (2025-08-27) ### Bug Fixes * add pinch to zoom support ([#21](#21)) ([a690749](a690749)) * add support for Scratch-style procedures ([#6](#6)) ([df207e4](df207e4)) * adjust key event filtering to fix the when key pressed block ([#13](#13)) ([06b011f](06b011f)) * allow typing into comments ([#15](#15)) ([668fbb9](668fbb9)) * avoid clearing the state of the sensing_of block by refreshing the toolbox ([#28](#28)) ([9bd036b](9bd036b)) * call reportValue on the ScratchBlocks module instead of the workspace ([#11](#11)) ([1898c52](1898c52)) * call the new glow methods on ScratchBlocks ([#12](#12)) ([be4386d](be4386d)) * fix bug that prevented displaying the procedure editor modal on mobile ([#26](#26)) ([8b1bf24](8b1bf24)) * fix issue that could prevent variables from appearing in the toolbox ([#31](#31)) ([0570261](0570261)) * fix preserving toolbox scroll position for new continuous toolbox plugin ([#30](#30)) ([b8f19dc](b8f19dc)) * make dropdown menu shadow block colors consistent ([#22](#22)) ([45d4803](45d4803)) * modify inject options to reflect Scratch behaviors ([#5](#5)) ([59bf3c5](59bf3c5)) * only refresh the toolbox when procedures are created via undo ([#19](#19)) ([f6dfd53](f6dfd53)) * partially roll back flyout optimization ([#25](#25)) ([1745c59](1745c59)) * patch the getCheckboxState method in the new flyout ([#7](#7)) ([dd98dd8](dd98dd8)) * plumb `FieldNote` through to the VM ([#33](#33)) ([fb762c2](fb762c2)) * preserve toolbox scroll position when switching between sprites/the stage ([#10](#10)) ([c8bc880](c8bc880)) * prevent exception when switching languages ([#27](#27)) ([d174ae9](d174ae9)) * reenable the Scratch colour eyedropper ([a7b1a10](a7b1a10)) * **release:** release beta branch under beta label(?) ([17c5b19](17c5b19)) * select extension categories when added ([#8](#8)) ([2d58403](2d58403)) * show the correct toolbox based on sprites or the stage being selected ([#4](#4)) ([dbbb251](dbbb251)) * specify the function to be used for prompting about variables ([#17](#17)) ([ee80f13](ee80f13)) * temporarily disable functionality in scratch-gui for compatibility with patched scratch-blocks ([#1](#1)) ([905f043](905f043)) * update the toolbox in response to procedure deletion/creation ([#18](#18)) ([505011d](505011d)) * use serialization wrapper ([#32](#32)) ([6e46a18](6e46a18)) * Use toolboxitemid instead of id as the identifier attribute for toolbox categories ([#9](#9)) ([077415b](077415b)) ### Features * plumb Scratch variable support into the UI ([#16](#16)) ([c92f244](c92f244))
Still needs:
But I wanted to get this in for review so we can think about the general approach.