All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
While this is an alpha release, new servers should use this rather than an older "stable" version.
Fixes:
- Fix occasional crash when a play is skipped. (#3056)
Internal:
- Complete Typescript migration. (#3052, #3055)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Drag and drop YouTube video URLs from other windows into a playlist. (#3043)
- Automatically leave the booth after your current turn by enabling auto-leave. (#2989)
Fixes:
- Show playlist panel after creating first playlist. (#3044)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Activate playlist on double click in playlist menu. (@pledi in #2972)
Fixes:
- Fix superuser role permissions. (#2968) In particular this lets admins skip their own turn again ;)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Fixes:
- Fix playlist loading issues. (#2809)
Internal:
- Continue Redux Toolkit migration. (#2816)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Fixes:
- Further Typescript refactor for playlist state, addressing problems loading inactive playlists. (#2801)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Fixes:
- Typescript refactor for the playlist state and components. Fixes a crash when importing playlists. (#2792)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Typescript refactor. (#2685)
Fixes:
- Fix overflows in autocomplete with long emote names. (#2674)
Internal:
- Build emoji files and shortcodes map in a vite plugin. (#2789)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Small UI tweaks, changing some paddings, rounding some borders. (#2673)
Internal:
- Use lighter weight SVG icons. (#2672)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Increased size of emotes to make them more distinguishable. (#2670)
- Made autocomplete of usernames and emotes a bit more forgiving to typos. (#2671)
While this is an alpha release, new servers should use this rather than an older "stable" version.
This client version requires u-wave-core
server version 0.5.0-alpha.15 or higher.
Features:
- Experimental support for runtime-configurable emotes. (#2669)
Internal:
- Fix reducer hot reloading. (#2607)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Bugfixes:
- Fix loading non-English translations. (#2602)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Breaking: The
u-wave-web
npm package now only provides an ES Modules entry point and an executable entry point. The CommonJS entry point is removed. (#2580)
Bugfixes:
-
Fix a crash when
currentDJ
object is spuriously empty while media is still being played. (7e679e)This shouldn't happen typically, but if the whole app crashes it's also very hard to diagnose, so having this case be handled is an improvement.
Internal:
- Use Vite to build the project. (#2580)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Bugfixes:
- Fix lingering state in the edit media dialog. (#2581)
Internal:
- Use
.jsx
extension for files that use JSX. (#2579)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Bugfixes:
- Fix a crash in the mobile version. (#2558)
Internal:
- Fix the profiling build. (#2559)
- Use
loading=lazy
on thumbnails in lists. (#2560)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Bugfixes:
- Fix deleting playlists.
Internal:
- Reduce high-level rerenders. (#2556)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Style admin user lists more densely. (#2545)
Bugfixes:
- Fix admin user list pagination.
Internal:
- Use webpack builtin JSON parser instead of yaml-loader.
- Fix prop types in several places.
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Rework the admin panel with SWR. (#2544)
Bugfixes:
- Fix a crash in the admin user list when a user has an invalid join date.
Internal:
- Reduce unnecessary callback invalidation.
- Do not compile dependencies to ES2015 when targeting modern browsers.
While this is an alpha release, new servers should use this rather than an older "stable" version.
Bugfixes:
- Fix preview media dialog backdrop size.
- Show preview button in history when not logged in.
- Tweak TextField outlines.
Internal:
- Use react-async-hook for async operations. (#2537)
- Setup chat commands in a more declarative way. (#2539)
- Mount dialogs as MUI intends. (#2540)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Add waitlist and ban buttons to user cards. (#2309)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Bugfixes:
- Fix missing
express
dependency in published package.
While this is an alpha release, new servers should use this rather than an older "stable" version.
Bugfixes:
- Fix custom emoji display in suggestions. (#2519)
Internal:
- Use React Suspense when loading ReCaptcha. (#2520)
- Replace custom package.json generation by a webpack plugin. (#2517)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Custom emoji support for the provided executable. (#2515)
Provide an environment variable
EMOJI_DIR
pointing to a directory with images to use as custom emoji, on top of the included Twitter emoji.
Internal:
- Dependency updates.
This release requires a server using üWave Core 0.5.0-alpha.8 or higher.
Features:
- Breaking: Use the server-default artist/title when adding search results. (#2359)
- Change waitlist button label to "Stop playing" while user is DJ. (#2373)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Pick chapters in the Edit Media dialog. (#1677)
- Support new emoji that do not have joypixel shortcodes yet. (#2360)
Bugfixes:
- Fix waitlist row positioning. (a19f25ab)
- Fix a crash when disabling video playback. (e148be55)
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Add twitter emoji. (#2149)
Internal:
- Upgrade React to version 18. (#2271)
- Use UUIDs for chat message IDs. (#2311)
- Use react-virtual instead of react-window. (#2306)
- And many dependency updates.
While this is an alpha release, new servers should use this rather than an older "stable" version.
Features:
- Show advance messages in the chat. (#1666) Now you can see during which media a message was sent.
Bugfixes:
- Fix history display in Chrome. It used to use
float: inline-start
, which Chrome does not support. Now it uses CSS grids.
Internal:
- Use CSS grids for media lists. (#2148)
While this is an alpha release, new servers should use this rather than an older "stable" version.
This is just a re-release of 2.0.0-alpha.4, which (ironically) included mismatching hashes in the build output.
While this is an alpha release, new servers should use this rather than an older "stable" version.
This release re-introduces the search results feature that shows the playlists each result is already part of. This requires üWave Core 0.5.0-alpha.8 or higher. In older server versions, the feature is far too slow to be used.
Features:
- Request related playlists in search queries.
Internal:
- Reimplement media progress bar in JS. (#2140)
- Read HTML from filesystem on each request. If you upgrade the static files for the web client at runtime it will no longer cause hash mismatches. You should still restart the web client's web server to pick up server-side changes.
While this is an alpha release, new servers should use this rather than an older "stable" version.
This release addresses a bunch of crashes introduced in the 2.0.0-alpha.2 release.
Features:
- Add
RECAPTCHA_KEY
env variable to configure ReCaptcha verification at signup with the included executable.
Bugfixes:
- Fix crash due to different playlist item object shape.
- Fix crash when a user role has no locale string.
- Add an error boundary to overlays so they do not crash the whole app.
- Accept both UNIX and ISO timestamp formats for
booth.startTime
. This makes the client work with üWave Core 0.5.0-alpha.5, which returns an unexpected value here.
This release is basically one big PR upgrading the build system and many dependencies. A few bugfixes slipped in as well.
Features:
- Breaking: Raised browser support floor to evergreen Firefox/Chrome/Edge versions. The aim is to re-introduce support for IE 11 in a future release using a dual bundling strategy but that may take a while.
- Update to React 17.
- Update to MUI 5.
- Improved SoundCloud error messages.
Bugfixes:
- Closing search results no longer shows an infinite loading screen.
- A failing search no longer shows an infinite loading screen.
- Improved scroll performance in search results.
Internal:
- Breaking: u-wave-web now requires Node.js 12.x or higher.
- Switch from enzyme to react-testing-library, which has React 17 support.
- Switch from mocha to jest, which has better react-testing-library support.
- Switch to native ES modules for most build scripts.
While this is an alpha release, new servers should use this rather than an older "stable" version.
Thanks to @Mrcl1450 for their contributions to this release!
Features:
- Added support for native ES module import on the server side. (#2078)
import createWebClient from 'u-wave-web/middleware';
Bugfixes:
- Fix youtube loading on mobile. (#2075)
- Add package.json "bin" key for the executable file that was added in 2.0.0-alpha.0.
Internal:
- Dependency updates.
While this is an alpha release, new servers should use this rather than an older "stable" version.
Massive thanks to @eyes-0nly, @pledi and @uriell for their contributions to this release!
Features:
- Breaking: Create a separate u-wave-web-middleware package. (#1018)
- Breaking: Remove
uw
argument from middleware API. - Added Russian translation. (#1869)
- Add intro screen if user has no playlists. (#1034)
- Use Intl APIs for date and time formatting if available. (#1234)
- New app loading screen. (#1285)
- In search results, show playlists a song is already in. (#1363)
- Add runtime configuration panel. (#1659)
- Add an executable to run the web client without writing glue code. (#1998)
- Use proper labels in login/signup forms. (#1919)
- Support emojis specified as full URLs. (#1861)
- Add password confirmation during registration. (#1874)
Bugfixes:
- Breaking: Changed
/mute
command to/muteuser
. (#1958) - Fix default message for forced DJ skips. (#1336)
- Fix race condition in WebSocket authentication. (#1860)
Internal:
- Rewrite AddToPlaylistMenu using hooks. (#1233)
- Update to Material UI v4. (#1237)
- Remove MediaSearchBar container. (#1240)
- Remove broken split bundle preloading. (#1241)
- Update webpack plugins and loaders. (#1242)
- Transpile async functions in dependencies. (#1248)
- Migrate many things away from HOCs. (#1257)
- Remove uses of ReactDOM.findDOMNode. (#1258)
- Switch to react-window. (#1262)
- Breaking: Update for server-side playlist auto-activation. (#1263)
- Reduce Concurrent Mode warnings. (#1286)
- Remove recompose. (#1294)
- Breaking: Implement votes using HTTP requests. (#1302)
- Remove unused
.selected
property from playlists. (#1405) - Use mui FormControl components in the SettingsManager. (#1414)
- Self-host Open Sans font. (#1443)
- Hide elements that may overlay embedded players. (#1856)
Bugfixes:
- Fix initialising current song on load. (#1129)
Bugfixes:
- Clear votes on advance, fixes a regression in v1.11.4. (#1126)
Internal:
- Update dependencies. (#1123, #1124, #1127)
- Reduce store churn during initial load. (#1128)
Bugfixes:
- Initialize votes on load. (#1103)
- Clear filter when selecting a different playlist. (#1107)
- New reconnect logic. (#1122)
Internal:
- Build static hashed filenames into a /static/ folder. (#1104)
Bugfixes:
- Fix returning value from PromptDialog. (#1090)
- Change icon in "No filter results" view. (#1087)
Internal:
- Move test files into related folders. (#1086)
Bugfixes:
- Fix timer. (#1084)
Internal:
- Use async capable EJS for HTML templates. (#1085)
- Update dependencies.
Bugfixes:
- Fix playlist media actions.
Features:
- Simplify MediaList styles (#1051)
- Simplify chat message styles. (#1052)
- Lazy load google signin button. (#1079)
Bugfixes:
- Fix
Array.find*
polyfills, fixes #1081 (#1082) - Add "No results" panel instead of "empty" when playlist filter does not match anything. (#1078)
- Manually serve the web app manifest. (#985)
- Fix loading client config on Password Reset page. (#1074)
Internal:
- Switch to postcss-preset-env (#1077)
- Update dependencies. (#1080)
- Update devDependencies. (#1073, #1076)
Bugfixes:
- Refactor login, edit, preview dialogs, fixing the close animation. (#1070)
Internal:
- Update material-ui to v1.4, significantly improving tooltip performance. (#1071)
Features:
- Add settings button when signed out. (#974)
- Add a screen for empty playlists. (#1033, #1035)
- Use CSS variables for theming. (#1020)
- Remove title and padding from PreviewMediaDialog. (#1021)
- Make the playlist manager toggle more obviously a button. (#1026)
- Remove top border from footer bar. (#1023)
- Tweak user avatar size in the profile/settings button. (#1024)
Bugfixes:
- Make chat ScrollDownNotice unfocusable when hidden. (#1014)
- Use consistent style and size for icon buttons. (#1025)
- Compile p-finally dependency for IE. (#1027)
- Tweak logo size. (#1029)
- Use the same size for the SoundCloud preview player as for YouTube. (#1030)
- Add margin to the waitlist button icon. (#1032)
Internal:
- Share polyfills between different entry points. (#1028)
- Update dependencies.
- Remove explicit eslint-config-airbnb-base dependency.
Bugfixes:
- Pin react-list to v0.8.9 to fix react-list-lazy-load incompatibility.
Bugfixes:
- Use global polyfills for new runtime features. (#1009)
- Switch from react-responsive to @u-wave/react-mq.
Internal:
- Add eslint-plugin-compat. (#1010)
- Rename HeaderHistoryButton → HistoryButton. (#992)
- Update deependencies.
Bugfixes:
- Add a label to the volume mute/unmute button. (#988)
- Add a minimum width to mobile drawers. (#984)
- Add
lang
attribute to the html element. (#986) - Animate scroll down button in and out on keyboard focus. (#983)
Features:
- Add autocomplete attributes to help browsers detect login forms. (#964)
Bugfixes:
- Fix CSS className generation for anonymous components. (#969)
- Improve overlay title text alignment. (#975)
- Fix duplicate
onSubmit
calls in PromptDialog. (#976) - Fix null MOTD. (#977)
- Use transforms for overlay transitions. (#981)
- Downgrade to react-dnd's v2 line, avoiding bugs introduced in newer versions. (#982)
Internal:
- Enable React Strict Mode. (#913)
- Use Slider from @material-ui/lab. (#962)
- Update material-ui to 1.1.0. (#963)
- Add netlify demo. (#979)
- Update dependencies. (#980)
Bugfixes:
- Fix crash in playlists reducer when not signed in. (#960)
Internal:
- Update babel to v7.0.0-beta.49. (#961)
Features:
- Enable mobile vote button area once media is playing. (#919)
Bugfixes:
- Fix playlist names overflowing in mobile AddToPlaylistMenu. (#918)
- Fix desktop preload check. (#940)
Internal:
- Add Webpack bundle analyzer script. (#939)
- Split some of the hacky webpack parts into separate files (#942)
- Upgrade redux to v4.0.0 and react-dnd to v3.0.0. (#920)
- Upgrade material-ui to v1.0.0.
Bugfixes:
- Disable vertical padding in user and playlist lists. (#910)
- Prevent playlist name wrapping on narrow screens. (#911)
- Link to u-wave.net instead of github. (#914)
- Fix crash when no media is playing on mobile. (#916)
- Fix mobile UsersDrawer docking to the left. (#917)
Internal:
- Upgrade material-ui to v1.0.0-beta.44.
Features:
- Show a message if a search turned up no results. (#889)
Bugfixes:
- Fix width of mobile SoundCloud player and add the blurred backdrop. (#893)
- Fix menu size on mobile with very long playlist names. (#895)
- Fixes for playlist "Active" checkbox. (#909)
Internal:
- Fix server list sizing. (#891)
- Use a material-ui IconButton for the overlay close button. (#892)
- Move SearchResults panel to its own folder. (#894)
- Update material-ui to v1.0.0-beta.43. (a21a96e3)
- Wait until the page is fully loaded before preloading overlays. (7ba34cb8)
Features:
- Show error message if SoundCloud track cannot be loaded. (#819)
- Play media on full volume on mobile. (#879)
- Request user interaction if SoundCloud autoplay is blocked. (#885)
Internal:
- Small refactors in the dev server.
- Dependency updates.
- Use an HTML form for the MOTD update UI. (#877)
- Use material-ui IconButtons for media actions. (#882)
- Preload overlays on desktop. (#887)
Features:
- Add pagination and filtering to user administration page. (#870)
Bugfixes:
- Wait for recaptcha response before enabling Register button. (#876)
- Fix theme related crash on password reset page. (#871)
- Fix ResponseButtons not covering the full FooterBar height. (#868)
- Allow focusing chat when PreviewMediaDialog is open. (#867)
Internal:
- Fix @babel/runtime useBuiltIns configuration. (#874)
- Lazy overlays for the mobile layout. (#875)
- Lazy load overlay code. (#873)
- Split lots of chunks. (#872)
- Replace some components with material-ui versions. (#869)
Features:
- Add server list. (#864)
Bugfixes:
- Disable mobile vote buttons so you can tap the video. (#865)
- Fix vertical scrollbar appearing on mobile because of the AppBar height. (#859)
Internal:
- Update material-ui and @material-ui/icons. (#857, #866)
- Update to Babel 7. (#858)
- Lazy load webpack config. (#862)
- Remove custom sourceType parameter. (#861)
- Use
qs-stringify
to simplify building the soundcloud embed URL. (#863)
Features:
- Show crash message + reload instruction on error. (#855)
Bugfixes:
- Fix crashes when volume is way up. (#854)
Bugfixes:
- Build public/.
Bugfixes:
- Allow overriding MediaList rowComponent, fixes drag-drop in playlists. (#852)
- Fix favouriting into existing playlist. (#851)
- Apply fonts and colour styles to the body instead of to
.App
. (#848) - Fix vote icon alignment in user rows. (#850)
- Slider fixes. (#849)
Internal:
- Update i18next to the latest version 🚀 (#847)
Features:
- Update to the material-ui v1 beta. (#844)
- Add vote icons in mobile layout when tapping the video. (#844)
Bugfixes:
- Fix long playlist names overflowing in menus. (#844)
- Fullscreen some dialogs in the mobile layout. (#844)
Bugfixes:
- Hide Google signin button on Register form if not available. (#843)
Features:
- Add WIP Mobile layout. (#514)
Internal:
- Extract second timer from App container. (#836)
Features:
- Update react-loadable. (#834)
- Name output chunks so that it's easier to see what code is being loaded in the network tab in devtools. (#834)
Add compiled files to the published package.
This version of the üWave Web Client requires u-wave-http-api@0.4.0 or higher.
Features:
- Adapt top bar to logo size. (#806)
- Social login. (#807)
- More consistent spacing in the footer bar. (#810)
- Request cookie sessions from HTTP API if supported. (#811)
- Add setting for skip notifications in chat. (#820)
- Add button to move first item to end of playlist. (#818)
- Implement ACL roles handling. (#492)
- Add initial draft of an admin page. (#741)
Bugfixes:
- Fix fullscreen change detection. (#804)
- Optimize html responses. (#805)
- Synchronously add English language strings to i18next resources. (#812)
- Bump overlay z-index so it is on top of HistoryButton. (#815)
- Fix overlays diffing internally when switching between them. (#829)
Internal:
- Switch to qs-stringify. (#814)
Bugfixes:
- Fix "Scroll to Bottom" button visibility. (#794)
- Fix dialog close animation. (#801)
- Fix progress spinner in Firefox. (#800)
- Strip HTML from static markdown page titles. (#803)
Internal:
- No longer test on Node versions below v8.9. (65dea161292f89f3afc765d6eb444020bbf12c66)
- Move development API server to u-wave-api-v1. (#799)
Features:
- Add
/playback on|off
chat command to toggle media playback. (#777) - Add skip notifications. (#785)
- Allow closing search results. (#787)
- Scroll chat when pressing PageUp/PageDown keys. (#788)
- Flash tab title when user is @-mentioned. (#789)
Bugfixes:
- Remove last onTouchTap references. (#786)
- Fix some build steps that were emitting code that does not run in old browsers. (#791)
- Prevent publishing test coverage results to npm. (1a3397be784cb952dcc0a7c9f271011b467e46b5)
Internal:
- Add Node 9 to CI. (#778)
Features:
- Compress web client files ahead of time. (#766)
- Add subresource integrity. (#772)
- Expose client configuration as a separate JSON endpoint. (#774)
Bugfixes:
- Fix user cards opening slowly near window edge. (#769)
- Fix socket authentication after it failed the first time. (#776)
- Fix
enhance
on ConnectionIndicator. (3d94458b)
Internal:
- Update dependencies.
Features:
- Improve SettingsPanel design. (#745)
- Rethrow boot errors for error reporting libraries. (#755)
Internal:
- Bail on error in prod build. (#758)
- Add prerelease npm script (#757)
- Add common-shake. (#754)
Features:
- Add offline indicator. (#737)
- Add x-ua-compatible meta tag for IE. (#740)
Bugfixes:
- Fix previous YouTube video restarting in the background when switching media source. (#744)
Internal:
- Use reconnecting-websocket from npm. (#742)
- Fix HMR rerendering (work around webpack bug I guess?). (#736)
Features:
- Add
title
option to configure page title. (#730) - Implement password reset app. Requires u-wave-api-v1@0.3.0. (#732)
Bugfixes:
- Fix waitlist part of ETA. (#729)
- Fix locale import paths in
lib/
andes/
builds. (#731)
Features:
- Add Spanish translation by @GameOver1751. (#699)
- New chat commands:
/volume
,/mute
,/unmute
,/nick
,/upvote
,/downvote
. (#723) - Only send name change request if new name is different. (#728)
Bugfixes:
- Remove ? from HTTP requests without query parameters. (#706)
- Fix interpolation in chat notifications. (#717)
- Wait for locale to be loaded before rendering anything. (#721)
Internal:
- Use
format-duration
module. (#702, #703) - Extract SearchBar component. (#708)
- Lots of dependency updates.
Features:
- Add user join, leave, name change notifications. (#681)
- Add loading spinner to and move reload into shuffle operation. (#691)
- Support WebSocket keepalive messages. (#696)
- Enable source maps in production. (#697)
Bugfixes:
- Fix progress bar animation in prod build. (#682)
- Remember playlist item selection as new pages are loaded. (#684)
Internal:
- Switch to babel-preset-env. (#566)
- Move
playMentionSound
into util module. (#687) - Make overlays standalone components, not tied to
<Overlay/>
. (#688) - Development server: Auto-reload Web API on changes. (#698)
Features:
- Improve progress bar animation. (#672)
Bugfixes:
- Hide import panels on error. (#674)
Internal:
- Use an
<img>
for emoji. (#673) - Enable ModuleConcatenationPlugin with Webpack v3. (#676)
- Test doing a full prod build on CI. (#678)
Features:
- Add a loading spinner to the skip button. (#660)
- Resync time if the local clock changes unexpectedly. (#661)
- Lazy load all non-English locales. (#609)
Bugfixes:
- Room History style fixes. (#655)
- Fix entering fullscreen mode. (#659)
- Fix JS error on logout. (#663)
Internal:
- Add explicit dependency on es2015-modules-commonjs transform. (27199551ec131448ad9fd3454aaf9308b289f053)
- Remove old experimental plugin file code. (#662)
- Fix deprecation warnings during tests. (#664)
- Extract MediaThumbnail component. (#665)
- Use a unique key for media list rows to minimize updates while scrolling. (#637)
- Add Node 8 to CI. (#666)
- Auto-update lockfile w/ greenkeeper. (#668)
Bugfixes:
- Fix the Video toolbar position. (#652)
Features:
- Use a material-ui-like loading spinner. (#610)
- Default to
https://sigil.u-wave.net
avatars. (#611) - Add Privacy Policy checkbox to register form. (#614)
- Automatically close media source picker after selecting a source. (#627)
- Batch rerenders into a
requestAnimationFrame
. (#629) - Allow pausing YouTube videos in Preview mode. (#636)
- Wait for the initial state before rendering. (#649)
Bugfixes:
- Truncate long song names in SoundCloud card. (#613)
- Fix logo size on the privacy policy page. (#615)
Internal:
- Dependency upgrades (especially React, material-ui)
- Switch to a different YouTube component that handles state internally. (#590)
- Small
serve
task cleanup. (#619) - Show more helpful Redis/Mongo connection errors. (#622)
- Flatten invalid nested CSS selectors. (#642)
Features:
- Use larger placeholder while dragging users in the waitlist. (#604)
Bugfixes:
- Hide chat message input when logged out. (#597)
Internal:
- Add a testing setup for React components. (#539)
- Upgrade React to v15.5 and deal with deprecations. (#600)
- Upgrade dependencies.
Features:
- Use React to generate SVG video backdrop. (#562)
- Show "Back To Recent Messages" button when scrolled up in chat. (#564)
- Add static page compilation and a Privacy Policy page. (#570)
- Show cached playlist items when switching playlists, instead of waiting for the playlist to reload. (#571)
- Add Skip reason selector. (#573)
Bugfixes:
- Fix chat scrolling up by itself after resizing the window. (#564)
Internal:
- Change user settings button to an actual
<button />
. (#575) - Use
import
everywhere. (#576) - Upgrade dependencies.
Features:
- Add the Password Reset Request form. (#264)
Bugfixes:
- Fix playlist rename dialog title. (#556)
- Fix deleting chat messages. (#559)
- Resolve HTTP requests with return value from onComplete, fixes favoriting media into a new playlist. (#560)
- Fix user cards overflowing window boundary. (#561)
Internal:
- Pull more build things from Gulp tasks into Webpack config. (#558)
Features:
- Sort emoji autocomplete suggestions by length. (#544)
- Use ReCaptcha's Dark theme. (#552)
- Add button to swap artist/title in EditMediaDialog. (#553)
Bugfixes:
- Chat performance fixes. (#543)
Internal:
- Add Lodash Webpack plugin. (#512, #549)
- Always render VideoBackdrop regardless of current media source. (#550)
This release contains an important fix for renaming playlists, and some minor fixes.
Bugfixes:
- Fix chat timestamps appearing behind emoji. (#533)
- Fix squeezed display of non-square emoji in suggestions list. (#535)
- Fix playlist meta actions. (#538)
Internal:
- Deal a bit better with missing browser features. (#518)
Features:
- Add a Delete button to individual chat messages for moderators (#489)
- Add Material-UI touch ripple when switching tabs (#508)
Bugfixes:
- Use cross-env for npm build script environment variables on Windows (#511)
- Remove Forgot Password link pending the related PR #264 (#531)
Internal:
- Add react-inline-elements transform in production build. (#503)
- Split up playlist manager into several separate Redux containers (#504)
- Clean up some dead code (#516, #523)
- Update Babel preset to use
babel-preset-latest
(#520) - Split up chat messages list and input into separate Redux containers (#521)
Bugfixes:
- Auto-position emoji tooltips to prevent overflow in chat messages (#495)
- Fix emoji in development watch mode (#496)
- Fix username dialog sizing (#498)
Features:
- Add a configurable About page overlay. Use
uw.setAboutPageComponent(class extends React.Component)
to change the contents of the overlay. - Add a video toolbar that shows when hovering the video area. The toolbar
contains buttons to toggle Small Video mode and a new Fullscreen mode. Media
sources can export a source-specific
VideoTools
component that will be rendered into the toolbar when media from that source is playing. - Publish ES-modules formatted code in es/ folder. Publish translations as JS files so a yaml plugin is not required for custom builds.
Improvements:
- Speed up rendering new chat messages by about 5× or more, depending on the size of the chat history.
- Disable vote buttons when nobody is DJ-ing.
- Compress images.
Bugfixes:
- ReconnectingWebSocket no longer crashes when imported from Node.js.
- The user list and wait list now properly fill the entire side panel.
Internal:
- Move build system to Webpack. CSS can now be hot-reloaded, and JS reloading is a lot more robust.
- Upgrade dependencies.
- Inline ReconnectingWebSocket dependency.
- Remove postcss-bem plugin, instead only using cssnext for CSS features. The postcss-bem project is abandoned.
Start tracking changes.