Jordan Eldredge
e98eae3936
Use MutationObserver to detect focused decedents leaving the DOM
2019-05-07 17:09:46 -07:00
Jordan Eldredge
c56bf0a964
Use React's blur event to detect with Webamp itself loses focus
2019-05-07 17:08:08 -07:00
Jordan Eldredge
bd3f986ade
Only clear focus is the focus is leaving the app
2019-05-06 22:22:32 -07:00
Jordan Eldredge
bd1999778d
Fix bug with ref
...
When using a ref in an effect, you need to use a state ref, otherwise the binding happens too early.
2019-05-06 22:22:13 -07:00
Jordan Eldredge
e5f6edf602
Add onMouseDown handlers to snapshots
2019-05-02 19:56:25 -07:00
Jordan Eldredge
5ee1a4f7b0
Order windows based upon which one was last clicked
2019-05-02 17:46:02 -07:00
Jordan Eldredge
3aa25f0b55
Focus target on click
...
I'm not sure why onFoucs+tabIndex does not do this
2019-05-02 17:45:07 -07:00
Jordan Eldredge
2569e7fb95
Remove logic that resets position on track load
...
I think this dates from back when we only had one track at a time, or something.
Fixes #775
2019-05-02 16:58:05 -07:00
Jordan Eldredge
f8167dd322
Autoplay tracks that are dropped on the main window
2019-05-02 16:58:05 -07:00
Jordan Eldredge
8a4a594dd0
Change nesting to preserve playlist styling
...
The `#playlist-window` div is a flex container so it needs to be the direct parent.
2019-05-02 16:58:01 -07:00
Jordan Eldredge
0f97529a39
Update snapshot to reflect new version of rc-slider
2019-05-02 16:32:29 -07:00
Jordan Eldredge
928c8e55e2
Upgrade rc-slider and react-redux
2019-05-02 09:05:24 -07:00
Jordan Eldredge
fe3a48e39a
Document semi-private API
2019-05-02 07:46:46 -07:00
Jordan Eldredge
3b4a66f2fe
Allow users to customize the media class
2019-05-02 07:46:46 -07:00
Jordan Eldredge
c75214dcd7
Improve reliance on selector caching
2019-05-02 07:23:41 -07:00
Jordan Eldredge
756854eaec
Clean up console.log
2019-05-02 07:11:17 -07:00
Jordan Eldredge
73f87be7c3
Memoize hot components
2019-05-02 07:04:31 -07:00
Jordan Eldredge
92d95f57eb
Remove unused import
2019-05-01 22:42:38 -07:00
Jordan Eldredge
4322aade4b
Improve selector memoization and ordering
2019-05-01 22:42:16 -07:00
Jordan Eldredge
e89aa26612
Avoid uneeded renders
2019-05-01 22:38:17 -07:00
Jordan Eldredge
c00cb44b8d
Update tests to reflect new focus management style
2019-05-01 22:29:10 -07:00
Jordan Eldredge
6cd2181d78
Clean up types
2019-05-01 22:29:10 -07:00
Jordan Eldredge
0792c51fb8
Trap focus
2019-05-01 22:29:10 -07:00
Jordan Eldredge
20a025541e
Clear focus when bluring out of app
2019-05-01 22:29:10 -07:00
Jordan Eldredge
9f7e92f370
Simplify focus Target
2019-05-01 22:29:10 -07:00
Jordan Eldredge
059669f3e5
Don't prevent text selection with preventDefault
...
We should use `user-select: none;` for this.
I think all places are already doing this.
2019-05-01 22:29:10 -07:00
Jordan Eldredge
6132acdf2c
Make focus nullable
2019-05-01 22:29:10 -07:00
Jordan Eldredge
c3c3ad69ab
Upgrade react-redux!
2019-05-01 22:29:10 -07:00
Jordan Eldredge
72bd83e1ae
Clean up arrayEquals
2019-05-01 22:29:10 -07:00
Jordan Eldredge
8627b4d2c4
Use native event handling for keydown
...
This allows us to stopPropogation and actually prevent global hotkeys
2019-05-01 22:29:10 -07:00
Jordan Eldredge
0a4c1cc4f7
Make easter egg handling more efficient
2019-05-01 22:29:10 -07:00
Jordan Eldredge
24d446e47b
Extract focus management to a component
2019-05-01 22:29:10 -07:00
Jordan Eldredge
67441f3c1b
Change how actions are typed
...
If we want to use the new version of react-redux we need to be compatible with their types.
Sadly it does not seem to be possible to create a Dispatchable type which can be eiher a plain action or a thunk and still be compatible with react-redux's types becuase they use redux's Store type under the hood which assumes you have an object with a string type property.
2019-05-01 22:29:10 -07:00
Jordan Eldredge
d4e9c79c8a
Stick with old versions of node
2019-05-01 22:29:10 -07:00
Jordan Eldredge
f1696fd7e6
Type getGenExColors
2019-05-01 22:05:42 -07:00
Jordan Eldredge
cb0e328ec7
Type getPlaylistStyle
2019-05-01 22:05:42 -07:00
Jordan Eldredge
4dfc19a527
Type getCursorFromFilename
2019-05-01 22:05:42 -07:00
Jordan Eldredge
b873e0df31
Type getSpriteUrisFromFilename
2019-05-01 22:05:42 -07:00
Jordan Eldredge
f56e707a16
Type getImgFromFilename
2019-05-01 22:05:42 -07:00
Jordan Eldredge
8b49b5fa6a
Move getFileExtension to skinparserutils
2019-05-01 22:05:42 -07:00
Jordan Eldredge
3547256e5a
Redirect webamp.net to webamp.org
2019-04-29 09:54:26 -07:00
Jordan Eldredge
2de880a917
Type getFileFromZip
2019-04-29 06:22:22 -07:00
Jordan Eldredge
3c97b2668f
Type getSpriteUrisFromImg
2019-04-25 07:29:25 -07:00
Jordan Eldredge
a1495cfd16
Start pulling parts of skinParser out into a TypeScript utils file
...
This will let us gradually type this file
2019-04-25 06:57:10 -07:00
Jordan Eldredge
fb35324ab6
Always parse skins as blobs
...
This avoids converting the skin to an arrayBuffer for no reason
2019-04-25 06:49:56 -07:00
Jordan Eldredge
7913048e41
Send users to the GitHub page via webamp.org
...
At some point in the future github may not be the canonical URL for
webamp. However, people are integrating Webamp all the time and very
likely won't ever upgrade.
It's better if the url baked into the binary we distribute is under our
control so that it can be pointed somewhere else in the future.
It's also an open question if GitHub is the best place to send users.
Non technical users may get very confused.
2019-04-12 16:50:47 -07:00
Jordan Eldredge
904ccbc203
Fix bug when reviewing skins
2019-04-12 16:06:03 -07:00
Jordan Eldredge
235ac53519
Use Window's real default background color
2019-04-12 16:06:03 -07:00
Jordan Eldredge
c352b1ceaa
Don't show the about icons if we are loaded as a webapp
2019-04-12 08:17:54 -07:00
Jordan Eldredge
80f34157dd
Notate some places where we have known bugs
2019-04-07 12:37:03 -07:00