* Update JS package versions.
* Forgot to remove a debugging log statement.
* Figured out the peerDependency npm issues... react-scripts thought it needed an old version of typescript, which we don't even need.
* Re-work state broadcasting mechanism to prevent excessive data transmission.
* Tidy up delta parsing, handle failure to serialize state diffs.
* Apply diffs in batches and use immer to apply them in a simple way.
* Update frontend build.
* Update stale docstrings.
* Rebuild frontend.
* Delete a file that wasn't being used.
* Update JS package versions.
* Forgot to remove a debugging log statement.
* Figured out the peerDependency npm issues... react-scripts thought it needed an old version of typescript, which we don't even need.
I also did a few things to help with general lifecycle issues with TSH on the python side.
- Handle signals so that the program exits as expected.
- Terminate the flask thread during shutdown to prevent "QThread still running when destroyed" crashes.
- Attempt to close the flask TCP socket to attempt to prevent exit crashes that I believe
are caused by race conditions with syscalls like socket_recv.
- Use signaling mechanism to cause TSH-generated state socket emits to be sent
from the flask thread rather than the state-changing thread.
- Upgrade WebServer.emit() to differentiate a response-to-message websocket emit vs a
TSH-generated broadcast-update-to-all-connected-clients emit.
Concept here is that I run streams for small house events where getting
to the stream PC to update set info is... tedious at best. So, I created
a way to update the current stream info with my phone.
I tried to mimic the style of the existing code as much as possible, I
hope this can get upstreamed without too many issues!
External to the new app page:
- Added react-router-dom to make any request not for /scoreboard fall back to the stage strike app.
- Added a route to get the current scoreboard state.
- Ran the build process, since it seems like that is how this repo handles npm build artifacts.
Features of the new page:
- Display current set
- Edit vital stats of any player from either team.
- Adjust set score
- Load sets a la `TSHSelectSetWindow.py` (includes filtering, and "hide concluded sets" option)
- Reasonably responsive to work well with either a mobile device or bigger screen.
- Set up with i18n tags, although I only filled out the en entries.