1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-07-05 18:48:31 +00:00

4.0.0-rc13.14

* Fixed: Clicking Stream Latency metadata not toggling the visibility of the player's playback statistics.
* Fixed: The Turbo landing page being inappropriately darkened. (Twitch forgot to add the "base text color" class to anything so text becomes invisible against the background.)
* Fixed: More emote menu fixes. Check that emote data from Twitch doesn't contain null values, because apparently it can.
* Fixed: Chat width in portrait mode using Microsoft Edge.
* Fixed: `no_invert` not applying to badges correctly. (Closes #547)
This commit is contained in:
SirStendec 2018-12-09 15:09:18 -05:00
parent 49bcfaebed
commit f2700db821
9 changed files with 39 additions and 5 deletions

View file

@ -149,7 +149,7 @@ ${typeof x[1] === 'string' ? x[1] : JSON.stringify(x[1], null, 4)}`
FrankerFaceZ.Logger = Logger; FrankerFaceZ.Logger = Logger;
const VER = FrankerFaceZ.version_info = { const VER = FrankerFaceZ.version_info = {
major: 4, minor: 0, revision: 0, extra: '-rc13.13', major: 4, minor: 0, revision: 0, extra: '-rc13.14',
commit: __git_commit__, commit: __git_commit__,
build: __webpack_hash__, build: __webpack_hash__,
toString: () => toString: () =>

View file

@ -441,6 +441,7 @@ export default class Badges extends Module {
if (no_invert) { if (no_invert) {
slotted[slot].full_size = true; slotted[slot].full_size = true;
slotted[slot].no_invert = true;
style.background = 'unset'; style.background = 'unset';
style.backgroundSize = 'unset'; style.backgroundSize = 'unset';
@ -471,7 +472,7 @@ export default class Badges extends Module {
const data = slotted[slot], const data = slotted[slot],
props = data.props; props = data.props;
props.className = `ffz-tooltip ffz-badge${data.full_size ? ' ffz-full-size' : ''}`; props.className = `ffz-tooltip ffz-badge${data.full_size ? ' ffz-full-size' : ''}${data.no_invert ? ' ffz-no-invert' : ''}`;
props.key = `${props['data-provider']}-${props['data-badge']}`; props.key = `${props['data-provider']}-${props['data-badge']}`;
props['data-tooltip-type'] = 'badge'; props['data-tooltip-type'] = 'badge';
props['data-badge-data'] = JSON.stringify(data.badges); props['data-badge-data'] = JSON.stringify(data.badges);

View file

@ -180,11 +180,12 @@ export default class Metadata extends Module {
return; return;
const store = internal.context.store, const store = internal.context.store,
state = store.getState(); state = store.getState(),
displayed = state && state.stats && state.stats.displayState === 'DISPLAY_VIDEO_STATS';
store.dispatch({ store.dispatch({
type: 'display stats', type: 'display stats',
displayed: ! (state.stats && state.stats.displayed) displayState: displayed ? 'DISPLAY_NONE' : 'DISPLAY_VIDEO_STATS'
}); });
}, },

View file

@ -204,6 +204,7 @@ Twilight.ROUTES = {
'user-following': '/:userName/following', 'user-following': '/:userName/following',
'product': '/products/:productName', 'product': '/products/:productName',
'prime': '/prime', 'prime': '/prime',
'turbo': '/turbo',
'user': '/:userName', 'user': '/:userName',
} }

View file

@ -1303,6 +1303,11 @@ export default class EmoteMenu extends Module {
} }
for(const emote of emote_set.emotes) { for(const emote of emote_set.emotes) {
// Validate emotes, because apparently Twitch is handing
// out bad emote data.
if ( ! emote || ! emote.id || ! emote.token )
continue;
const id = parseInt(emote.id, 10), const id = parseInt(emote.id, 10),
name = KNOWN_CODES[emote.token] || emote.token, name = KNOWN_CODES[emote.token] || emote.token,
mapped = emote_map && emote_map[name], mapped = emote_map && emote_map[name],
@ -1403,6 +1408,11 @@ export default class EmoteMenu extends Module {
section.all_locked = false; section.all_locked = false;
for(const emote of product.emotes) { for(const emote of product.emotes) {
// Validate emotes, because apparently Twitch is handing
// out bad emote data.
if ( ! emote || ! emote.id || ! emote.token )
continue;
const id = parseInt(emote.id, 10), const id = parseInt(emote.id, 10),
base = `${TWITCH_EMOTE_BASE}${id}`, base = `${TWITCH_EMOTE_BASE}${id}`,
name = KNOWN_CODES[emote.token] || emote.token, name = KNOWN_CODES[emote.token] || emote.token,

View file

@ -0,0 +1,13 @@
.channel-info-bar__content-right {
display: flex;
flex-direction: column;
& > .tw-align-items-start {
margin-top: 0 !important;
order: -1;
& > .tw-pd-t-05 {
padding-top: 0 !important;
}
}
}

View file

@ -41,6 +41,10 @@
width: unset !important; width: unset !important;
border-top: 1px solid #dad8de; border-top: 1px solid #dad8de;
& > .tw-full-height {
width: 100% !important;
}
.right-column__toggle-visibility { .right-column__toggle-visibility {
position: fixed !important; position: fixed !important;
top: 6.5rem; top: 6.5rem;

View file

@ -9,7 +9,7 @@ import {createElement} from 'utilities/dom';
import THEME_CSS_URL from 'site/styles/theme.scss'; import THEME_CSS_URL from 'site/styles/theme.scss';
const BAD_ROUTES = ['product', 'prime']; const BAD_ROUTES = ['product', 'prime', 'turbo'];
export default class ThemeEngine extends Module { export default class ThemeEngine extends Module {

View file

@ -34,6 +34,10 @@
background-position: center; background-position: center;
vertical-align: middle; vertical-align: middle;
&.ffz-no-invert {
filter:none !important;
}
&.ffz-full-size { &.ffz-full-size {
min-width: 1.8rem; min-width: 1.8rem;
height: 1.8rem; height: 1.8rem;