diff --git a/src/main.js b/src/main.js
index d2aa8541..3fe83163 100644
--- a/src/main.js
+++ b/src/main.js
@@ -100,7 +100,7 @@ class FrankerFaceZ extends Module {
FrankerFaceZ.Logger = Logger;
const VER = FrankerFaceZ.version_info = {
- major: 4, minor: 0, revision: 0, extra: '-rc12.4',
+ major: 4, minor: 0, revision: 0, extra: '-rc12.5',
commit: __git_commit__,
build: __webpack_hash__,
toString: () =>
diff --git a/src/modules/metadata.jsx b/src/modules/metadata.jsx
index 2b1ad9ce..a5cb41d1 100644
--- a/src/modules/metadata.jsx
+++ b/src/modules/metadata.jsx
@@ -104,6 +104,8 @@ export default class Metadata extends Module {
}
this.definitions['player-stats'] = {
+ button: false,
+
refresh() {
return this.settings.get('metadata.player-stats')
},
@@ -170,6 +172,22 @@ export default class Metadata extends Module {
return `${delayed}${data.delay.toFixed(2)}s`;
},
+ click(data) {
+ const Player = this.resolve('site.player'),
+ internal = Player.getInternalPlayer();
+
+ if ( ! internal )
+ return;
+
+ const store = internal.context.store,
+ state = store.getState();
+
+ store.dispatch({
+ type: 'display stats',
+ displayed: ! (state.stats && state.stats.displayed)
+ });
+ },
+
color(data) {
const setting = this.settings.get('some.thing');
if ( setting == null || ! data.delay || data.old )
@@ -330,7 +348,7 @@ export default class Metadata extends Module {
tip_content={tooltip}
/>);
- if ( def.popup || def.click ) {
+ if ( def.button !== false && (def.popup || def.click) ) {
button = true;
let btn, popup;
@@ -431,6 +449,14 @@ export default class Metadata extends Module {
el.appendChild(
{stat = }
);
+
+ if ( def.click )
+ el.addEventListener('click', e => {
+ if ( el._ffz_fading || el.disabled || el.classList.contains('disabled') )
+ return false;
+
+ def.click.call(this, el._ffz_data, e, () => refresh_fn(key));
+ });
}
el.appendChild(sub_el = );
diff --git a/src/sites/twitch-twilight/modules/css_tweaks/styles/portrait.scss b/src/sites/twitch-twilight/modules/css_tweaks/styles/portrait.scss
index eccc9f46..5d364ce8 100644
--- a/src/sites/twitch-twilight/modules/css_tweaks/styles/portrait.scss
+++ b/src/sites/twitch-twilight/modules/css_tweaks/styles/portrait.scss
@@ -34,8 +34,9 @@
display: unset !important;
position: fixed !important;
z-index: 10000;
- bottom: 0;
- left: 0; right: 0;
+ bottom: 0 !important;
+ left: 0 !important;
+ right: 0 !important;
height: calc(100vh - var(--ffz-player-height)) !important;
border-top: 1px solid #dad8de;
diff --git a/src/sites/twitch-twilight/modules/player.jsx b/src/sites/twitch-twilight/modules/player.jsx
index 09c19737..148fd298 100644
--- a/src/sites/twitch-twilight/modules/player.jsx
+++ b/src/sites/twitch-twilight/modules/player.jsx
@@ -530,6 +530,20 @@ export default class Player extends Module {
}
+ getInternalPlayer(inst) {
+ if ( ! inst )
+ inst = this.Player.first;
+
+ const node = this.fine.getChildNode(inst),
+ el = node && node.querySelector('.player-ui');
+
+ if ( ! el || ! el._reactRootContainer )
+ return null;
+
+ return this.fine.searchTree(el, n => n.props && n.props.player && n.context && n.context.store);
+ }
+
+
get current() {
// There should only ever be one player instance, but might change
// when they re-add support for the mini player.