mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-06-27 21:05:53 +00:00
4.7.2
* 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:
parent
9fcd7cb90a
commit
9ab57897ef
10 changed files with 51 additions and 16 deletions
3
.babelrc
3
.babelrc
|
@ -2,6 +2,7 @@
|
|||
"plugins": [
|
||||
"@babel/plugin-syntax-dynamic-import",
|
||||
"@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
21
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "frankerfacez",
|
||||
"version": "4.6.1",
|
||||
"version": "4.7.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -304,6 +304,16 @@
|
|||
"@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": {
|
||||
"version": "7.2.0",
|
||||
"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/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": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "frankerfacez",
|
||||
"author": "Dan Salvato LLC",
|
||||
"version": "4.7.1",
|
||||
"version": "4.7.2",
|
||||
"description": "FrankerFaceZ is a Twitch enhancement suite.",
|
||||
"license": "Apache-2.0",
|
||||
"scripts": {
|
||||
|
@ -22,6 +22,7 @@
|
|||
"devDependencies": {
|
||||
"@babel/core": "^7.5.5",
|
||||
"@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-syntax-dynamic-import": "^7.2.0",
|
||||
"@babel/plugin-transform-react-jsx": "^7.3.0",
|
||||
|
|
|
@ -118,7 +118,7 @@ export const msg_delete = {
|
|||
title: 'Delete Message',
|
||||
|
||||
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) {
|
||||
|
@ -155,7 +155,7 @@ export const ban = {
|
|||
},
|
||||
|
||||
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) {
|
||||
|
@ -201,7 +201,7 @@ export const timeout = {
|
|||
|
||||
tooltip(data) {
|
||||
return this.i18n.t(
|
||||
'chat.actions.timeout',
|
||||
'chat.actions.timeout.tooltip',
|
||||
'Timeout {user.login} for {duration,number} second{duration,en_plural}',
|
||||
{
|
||||
user: data.user,
|
||||
|
@ -261,7 +261,7 @@ export const untimeout = {
|
|||
title: 'Untimeout User',
|
||||
|
||||
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) {
|
||||
|
@ -287,7 +287,7 @@ export const whisper = {
|
|||
title: 'Whisper User',
|
||||
|
||||
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) {
|
||||
|
|
|
@ -307,8 +307,9 @@ export default {
|
|||
},
|
||||
|
||||
importProfile(profile_data, data) {
|
||||
this.import_profile = profile_data;
|
||||
|
||||
if ( profile_data.url ) {
|
||||
this.import_profile = profile_data;
|
||||
this.import_profile_data = data;
|
||||
return;
|
||||
}
|
||||
|
@ -327,6 +328,12 @@ export default {
|
|||
|
||||
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;
|
||||
|
||||
if ( ! data ) {
|
||||
|
|
|
@ -61,9 +61,9 @@
|
|||
</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">
|
||||
{{ 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>
|
||||
|
|
|
@ -63,12 +63,12 @@ export default class MainMenu extends Module {
|
|||
});
|
||||
|
||||
this.settings.addUI('faq', {
|
||||
path: 'Home > FAQ',
|
||||
path: 'Home > FAQ @{"profile_warning": false}',
|
||||
component: 'faq-page'
|
||||
});
|
||||
|
||||
this.settings.addUI('feedback', {
|
||||
path: 'Home > Feedback',
|
||||
path: 'Home > Feedback @{"profile_warning": false}',
|
||||
component: 'feedback-page'
|
||||
});
|
||||
|
||||
|
@ -83,7 +83,7 @@ export default class MainMenu extends Module {
|
|||
})
|
||||
|
||||
this.settings.addUI('changelog', {
|
||||
path: 'Home > Changelog',
|
||||
path: 'Home > Changelog @{"profile_warning": false}',
|
||||
component: 'changelog'
|
||||
});
|
||||
|
||||
|
|
|
@ -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',
|
||||
'profile-hover': '.preview-card .tw-relative:hover .ffz-channel-avatar',
|
||||
'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'
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ export default class Directory extends SiteModule {
|
|||
|
||||
this.DirectoryShelf = this.fine.define(
|
||||
'directory-shelf',
|
||||
n => n.getShelfTitle && n.props && n.props.shelf,
|
||||
n => n.shouldRenderNode && n.props && n.props.shelf,
|
||||
DIR_ROUTES
|
||||
);
|
||||
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
outline: none;
|
||||
cursor: pointer;
|
||||
|
||||
border-left: 4px solid;
|
||||
border-left-color: transparent;
|
||||
|
||||
&.live .ffz--profile-row__icon {
|
||||
color: green;
|
||||
}
|
||||
|
@ -28,6 +31,10 @@
|
|||
}
|
||||
}
|
||||
|
||||
&.current {
|
||||
border-left-color: #6441a4;
|
||||
}
|
||||
|
||||
.description {
|
||||
opacity: .7;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue