* split play-button into container and component
* revised sound library tile:
* play button in upper right
* smaller sound icon (make the tile less loaded)
Play button doesn’t have a ‘touch-outside’ listener to stop sounds. That seems to be ok as other events cause the sound to stop.
Both handleClick and handleMouseDown are needed. Must use handleMouseDown for `preventDefault` to skip setting focus on the item. handleClick is needed to prevent the Click from propagating to the item and selecting it.
Play button is larger (easier to touch). Can both start and stop sounds.
Sound doesn’t restart on mouseEnter if the sound is already playing.
Sound stops if you move off play button
Missing: stop button does not revert to play button when the sound finishes.
The `LibraryItem` component has been split into a container, responsible
for handling interaction with the storage module, and a component,
responsible for presentation. The component now always takes an
`iconURI` and the logic to load an icon from storage has been moved from
`Library` into `LibraryItem`.
TODO: move animation logic from `SpriteLibrary` into `LibraryItem`. This
should simplify the code quite a bit and might also improve performance.
Too much traffic, not enough value. Leaving stuff having to do with tips library/tutorial card navigation as well as hardware extension connectivity, as those help us find issues with Scratch.
* convert all tags to have a `tag` field corresponding to the query parameter, and `intlLabel` field that defines the title message for `FormattedMessage`
* define all the tag messages in a shared file so they can be included in multiple places.
* convert the `TagButton` to use `tag` for the `onclick` handler value, and localize `intlLabel` for the title.
In the library I’ve continued to use `tag.toLowercase()` even though all the tags are currently defined as lowercase. It’s safer, but currently not strictly needed.
* WIP tips
* WIP first card stack
* WIP use tips reducer to show things to try
* single card deck similar to mask sequence
* collapse option
* Add zoom card
* WIP tips
* Reorganized to redux
* Add zooming to the gifs
* Blue cards + navigation
* Add tips to new nav bar
* Remove blue
* Update design with icons
* deck updates wip
* Updated card decks
* Add videos to libraries
* Update initial card and clicker preview
* Add backdrop to initial card step.
* WIP use vimeo player instead
* New simple spin deck
* Spin around and say hello decks
* Update button and sub-card styles
* Fix "tips" button in menu bar
* Use move cursor
* Fix cursor
* Use same image for deck preview and library
* Fix cursor again
* Update clicker game deck
* Add videos as single-step decks
* Change tips in menu bar to ? icon
* Change “tips” to “how-tos” in library
* Add help icon to cards
* Update deck library images
* Add drag cover for youtube video to prevent catching mouseup
* add a step to spin deck for clicking control
* Blue bar style updates
* Add step pips
* Update clicker game name to run away
* Fix image padding
* Add change color step to spin deck
* Add start sound step to run away deck
* Update say deck to start with adding a sprite
* Remove package lock
* Remove zooming functionality
* Remove unnecassary prototype changes
* Split up rendering of cards into smaller parts
* Use FormattedMessage for all strings
* Automatic lint fixes
* Almost finished with lint errors!
* Fix more lint errors
* Clean up CSS
* Fix webpack config
Push to history when the library mounts. Whenever popstate occurs after mounting, request to be closed.
Behavior captured in the `Modal` container. If we want to re-use this functionality for anything else that uses `ModalComponent`, just use the `Modal` container rather than `ModalComponent`.
Concatenate all the tags plus the library item name into one string and search for a match within that. This allows queries to partially match tags and library item names.
The `\n` delimiter is because my first choices of `' '` or `,` are typeable, and would end up matching everything.
Including action-menu which was also giving one when the backdrop library opened.
Localize the costume library, I missed it while doing the other libraries.