Commit graph

1252 commits

Author SHA1 Message Date
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
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
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
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
80f34157dd Notate some places where we have known bugs 2019-04-07 12:37:03 -07:00
Jordan Eldredge
4310d5475d Prettier 2019-04-05 07:36:59 -07:00
Jordan Eldredge
cce7928f4e Accept the reality of event emitter 2019-04-05 07:34:14 -07:00
Jordan Eldredge
5713052415 Type ref callback 2019-04-05 07:34:14 -07:00
Jordan Eldredge
646b38319e Remove unused property 2019-04-05 07:34:14 -07:00
Jordan Eldredge
12139fb190 Type bindings 2019-04-05 07:34:14 -07:00
Jordan Eldredge
071c54b870 Initial typing of App.tsx 2019-04-05 07:34:14 -07:00
Jordan Eldredge
f45a3ec3f3 Make it safe to reparent the #webamp node
For now users can't control where Webamp inserts itself into the DOM. We want to add that as and option. In the mean time, we can enable users to hack it.

For example, https://github.com/ShizukuIchi/winXP wants to be able to keep Webamp in a div in order to control how it gets layerd with other apps.
2019-04-05 07:34:14 -07:00
Jordan Eldredge
758e20a9ad Update test to use getNextTrackId
I broke these in 4a3929a2b5 when I fogot to rename the tests as well as the usage.

I've converted this test to typescript which should help catch these kinds of things more easily in the future.
2019-04-05 07:34:14 -07:00
Jordan Eldredge
3e40ab5d17 Make spacing a little closer to right 2019-03-27 23:56:31 -07:00
Jordan Eldredge
7ef0320581 Use a light color for selected tracks in the library 2019-03-27 23:56:31 -07:00
Jordan Eldredge
0bd9feba7a Highlight selected table row in library 2019-03-27 23:56:31 -07:00
Jordan Eldredge
7ecd51020f Abstract the library table 2019-03-27 23:56:31 -07:00
Jordan Eldredge
4a3929a2b5 Fix bug where we could not progress to the next track
This was because we would go into stopped mode, and once in stopped mode, going to the next track was disabled.
2019-03-27 23:56:31 -07:00
Jordan Eldredge
1f7f00e031 Imrpove stretch of library buttons 2019-03-27 23:56:31 -07:00
Jordan Eldredge
82d7f99814 Use the correct name for the Library window in the context menu 2019-03-27 23:56:31 -07:00
jberg
5cfb4a3ea2 Butterchurn reset preset cycle interval 2019-03-25 17:23:29 -07:00
Jordan Eldredge
dd1f6164d9 Don't autoplay on next when stoppedFixes #730 2019-03-25 06:31:49 -07:00
Jordan Eldredge
c4282817db Add more methods to Webamp
Replaces #660
2019-03-24 21:51:52 -07:00
Jordan Eldredge
d57e3b3671 Use CSS Grid for laying out the media library 2019-03-23 17:37:37 -07:00
Jordan Eldredge
b5f1ad522e Use CSS grid for sidebar resize 2019-03-23 15:54:00 -07:00
Jordan Eldredge
95db2d08b6 Remeasure the offset when whe change selection state. 2019-03-23 14:09:57 -07:00
Jordan Eldredge
912a570101 Fix context menu which was opening at the top corner of the page 2019-03-22 16:42:16 -07:00
Jordan Eldredge
0bc0e98836 Remove prop types 2019-03-22 16:37:58 -07:00