1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-08-06 06:10:54 +00:00
* Fixed: Option to hide `LIVE` indicators on live channel pages.
* Fixed: Option to hide Recommended Channels from the Following page.
* Fixed: Error when attempting to import a single profile from a full data backup.
* Fixed: Incorrect profile names and descriptions being displayed in the profile selector of the FFZ Control Center.
* Fixed: Incorrect styling being applied in the profile selector of the FFZ Control Center, making it impossible to determine which profile is currently selected.
* Fixed: Enable the babel object rest spread transformation for continued support of certain older web browsers.
* Fixed: Tool-tips of certain in-line chat actions not displaying information such as the target user's name or the duration of a timeout.
This commit is contained in:
SirStendec 2019-08-05 17:26:11 -04:00
parent 9fcd7cb90a
commit 9ab57897ef
10 changed files with 51 additions and 16 deletions

View file

@ -2,6 +2,7 @@
"plugins": [ "plugins": [
"@babel/plugin-syntax-dynamic-import", "@babel/plugin-syntax-dynamic-import",
"@babel/plugin-proposal-optional-chaining", "@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator" "@babel/plugin-proposal-nullish-coalescing-operator",
["@babel/plugin-proposal-object-rest-spread", {"loose": true, "useBuiltIns": true}]
] ]
} }

21
package-lock.json generated
View file

@ -1,6 +1,6 @@
{ {
"name": "frankerfacez", "name": "frankerfacez",
"version": "4.6.1", "version": "4.7.1",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -304,6 +304,16 @@
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.2.0" "@babel/plugin-syntax-nullish-coalescing-operator": "^7.2.0"
} }
}, },
"@babel/plugin-proposal-object-rest-spread": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz",
"integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-syntax-object-rest-spread": "^7.2.0"
}
},
"@babel/plugin-proposal-optional-chaining": { "@babel/plugin-proposal-optional-chaining": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.2.0.tgz",
@ -341,6 +351,15 @@
"@babel/helper-plugin-utils": "^7.0.0" "@babel/helper-plugin-utils": "^7.0.0"
} }
}, },
"@babel/plugin-syntax-object-rest-spread": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz",
"integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0"
}
},
"@babel/plugin-syntax-optional-chaining": { "@babel/plugin-syntax-optional-chaining": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz",

View file

@ -1,7 +1,7 @@
{ {
"name": "frankerfacez", "name": "frankerfacez",
"author": "Dan Salvato LLC", "author": "Dan Salvato LLC",
"version": "4.7.1", "version": "4.7.2",
"description": "FrankerFaceZ is a Twitch enhancement suite.", "description": "FrankerFaceZ is a Twitch enhancement suite.",
"license": "Apache-2.0", "license": "Apache-2.0",
"scripts": { "scripts": {
@ -22,6 +22,7 @@
"devDependencies": { "devDependencies": {
"@babel/core": "^7.5.5", "@babel/core": "^7.5.5",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.4.4", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.4.4",
"@babel/plugin-proposal-object-rest-spread": "^7.5.5",
"@babel/plugin-proposal-optional-chaining": "^7.2.0", "@babel/plugin-proposal-optional-chaining": "^7.2.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-transform-react-jsx": "^7.3.0", "@babel/plugin-transform-react-jsx": "^7.3.0",

View file

@ -118,7 +118,7 @@ export const msg_delete = {
title: 'Delete Message', title: 'Delete Message',
tooltip(data) { tooltip(data) {
return this.i18n.t('chat.actions.delete', "Delete {user.login}'s message", {user: data.user}); return this.i18n.t('chat.actions.delete.tooltip', "Delete {user.login}'s message", {user: data.user});
}, },
click(event, data) { click(event, data) {
@ -155,7 +155,7 @@ export const ban = {
}, },
tooltip(data) { tooltip(data) {
return this.i18n.t('chat.actions.ban', 'Ban {user.login}', {user: data.user}); return this.i18n.t('chat.actions.ban.tooltip', 'Ban {user.login}', {user: data.user});
}, },
click(event, data) { click(event, data) {
@ -201,7 +201,7 @@ export const timeout = {
tooltip(data) { tooltip(data) {
return this.i18n.t( return this.i18n.t(
'chat.actions.timeout', 'chat.actions.timeout.tooltip',
'Timeout {user.login} for {duration,number} second{duration,en_plural}', 'Timeout {user.login} for {duration,number} second{duration,en_plural}',
{ {
user: data.user, user: data.user,
@ -261,7 +261,7 @@ export const untimeout = {
title: 'Untimeout User', title: 'Untimeout User',
tooltip(data) { tooltip(data) {
return this.i18n.t('chat.actions.untimeout', 'Untimeout {user.login}', {user: data.user}); return this.i18n.t('chat.actions.untimeout.tooltip', 'Untimeout {user.login}', {user: data.user});
}, },
click(event, data) { click(event, data) {
@ -287,7 +287,7 @@ export const whisper = {
title: 'Whisper User', title: 'Whisper User',
tooltip(data) { tooltip(data) {
return this.i18n.t('chat.actions.whisper', 'Whisper {user.login}', data); return this.i18n.t('chat.actions.whisper.tooltip', 'Whisper {user.login}', data);
}, },
click(event, data) { click(event, data) {

View file

@ -307,8 +307,9 @@ export default {
}, },
importProfile(profile_data, data) { importProfile(profile_data, data) {
if ( profile_data.url ) {
this.import_profile = profile_data; this.import_profile = profile_data;
if ( profile_data.url ) {
this.import_profile_data = data; this.import_profile_data = data;
return; return;
} }
@ -327,6 +328,12 @@ export default {
const prof = this.context.createProfile(profile_data); const prof = this.context.createProfile(profile_data);
prof.update({
i18n_key: undefined,
desc_i18n_key: undefined,
description: `${prof.description ? prof.description + '\n' : ''}${this.t('setting.backup-restore.imported-at', 'Imported at {now,datetime}.', {now: new Date})}`
});
let i = 0; let i = 0;
if ( ! data ) { if ( ! data ) {

View file

@ -61,9 +61,9 @@
</div> </div>
<h4>{{ t(p.i18n_key, p.title, p) }}</h4> <h4>{{ p.i18n_key ? t(p.i18n_key, p.title, p) : p.title }}</h4>
<div v-if="p.description" class="description"> <div v-if="p.description" class="description">
{{ t(p.desc_i18n_key, p.description, p) }} {{ p.desc_i18n_key ? t(p.desc_i18n_key, p.description, p) : p.description }}
</div> </div>
</div> </div>
</div> </div>

View file

@ -63,12 +63,12 @@ export default class MainMenu extends Module {
}); });
this.settings.addUI('faq', { this.settings.addUI('faq', {
path: 'Home > FAQ', path: 'Home > FAQ @{"profile_warning": false}',
component: 'faq-page' component: 'faq-page'
}); });
this.settings.addUI('feedback', { this.settings.addUI('feedback', {
path: 'Home > Feedback', path: 'Home > Feedback @{"profile_warning": false}',
component: 'feedback-page' component: 'feedback-page'
}); });
@ -83,7 +83,7 @@ export default class MainMenu extends Module {
}) })
this.settings.addUI('changelog', { this.settings.addUI('changelog', {
path: 'Home > Changelog', path: 'Home > Changelog @{"profile_warning": false}',
component: 'changelog' component: 'changelog'
}); });

View file

@ -32,7 +32,7 @@ const CLASSES = {
'dir-live-ind': '.live-channel-card:not([data-a-target*="host"]) .stream-type-indicator.stream-type-indicator--live,.stream-thumbnail__card .stream-type-indicator.stream-type-indicator--live,.preview-card .stream-type-indicator.stream-type-indicator--live,.preview-card .preview-card-stat.preview-card-stat--live', 'dir-live-ind': '.live-channel-card:not([data-a-target*="host"]) .stream-type-indicator.stream-type-indicator--live,.stream-thumbnail__card .stream-type-indicator.stream-type-indicator--live,.preview-card .stream-type-indicator.stream-type-indicator--live,.preview-card .preview-card-stat.preview-card-stat--live',
'profile-hover': '.preview-card .tw-relative:hover .ffz-channel-avatar', 'profile-hover': '.preview-card .tw-relative:hover .ffz-channel-avatar',
'not-live-bar': 'div[data-test-selector="non-live-video-banner-layout"]', 'not-live-bar': 'div[data-test-selector="non-live-video-banner-layout"]',
'channel-live-ind': 'div[data-target="channel-header__live-indicator"]' 'channel-live-ind': '.channel-header__user .tw-channel-status-text-indicator'
}; };

View file

@ -55,7 +55,7 @@ export default class Directory extends SiteModule {
this.DirectoryShelf = this.fine.define( this.DirectoryShelf = this.fine.define(
'directory-shelf', 'directory-shelf',
n => n.getShelfTitle && n.props && n.props.shelf, n => n.shouldRenderNode && n.props && n.props.shelf,
DIR_ROUTES DIR_ROUTES
); );

View file

@ -15,6 +15,9 @@
outline: none; outline: none;
cursor: pointer; cursor: pointer;
border-left: 4px solid;
border-left-color: transparent;
&.live .ffz--profile-row__icon { &.live .ffz--profile-row__icon {
color: green; color: green;
} }
@ -28,6 +31,10 @@
} }
} }
&.current {
border-left-color: #6441a4;
}
.description { .description {
opacity: .7; opacity: .7;
} }