From 33e81bc7eb117043f114b59c32488f6decf55242 Mon Sep 17 00:00:00 2001 From: SirStendec Date: Thu, 20 Jun 2019 15:15:54 -0400 Subject: [PATCH] 4.5.3 The Great Maintenance Update. No new features here. Instead, we've updated the build system to webpack 4, updated all our dependencies, and cleaned up a lot of linting issues. --- .eslintrc.js | 1 - package.json | 3 +- src/addons.js | 4 +- src/i18n.js | 22 +++---- src/main.js | 6 +- src/modules/chat/actions/index.jsx | 4 +- src/modules/chat/index.js | 2 + src/modules/chat/tokenizers.jsx | 5 +- src/modules/logviewer/index.js | 2 + .../main_menu/components/action-editor.vue | 61 +++++++++++------- .../main_menu/components/action-preview.vue | 2 +- .../main_menu/components/addon-list.vue | 9 ++- .../components/badge-highlighting.vue | 16 ++++- .../components/badge-term-editor.vue | 5 +- .../main_menu/components/badge-visibility.vue | 2 +- .../main_menu/components/basic-terms.vue | 16 ++++- .../main_menu/components/chat-actions.vue | 2 + .../main_menu/components/chat-reasons.vue | 15 ++++- .../main_menu/components/color-picker.vue | 6 +- .../main_menu/components/experiments.vue | 9 ++- .../components/filter-rule-editor.vue | 2 +- .../main_menu/components/home-page.vue | 6 +- .../main_menu/components/main-menu.vue | 4 +- .../main_menu/components/menu-container.vue | 5 +- .../main_menu/components/menu-page.vue | 2 +- .../main_menu/components/menu-tree.vue | 7 +- .../main_menu/components/profile-editor.vue | 2 +- .../main_menu/components/profile-selector.vue | 2 +- .../components/setting-check-box.vue | 2 +- .../components/setting-color-box.vue | 2 +- .../components/setting-combo-box.vue | 2 +- .../main_menu/components/setting-hotkey.vue | 9 ++- .../components/setting-radio-buttons.vue | 2 +- .../components/setting-select-box.vue | 2 +- .../main_menu/components/setting-text-box.vue | 2 +- .../main_menu/components/term-editor.vue | 16 +++-- src/modules/metadata.jsx | 2 +- src/modules/tooltips.js | 4 +- src/modules/viewer_cards/components/main.vue | 2 +- src/settings/components/channel.vue | 4 +- src/settings/components/nested.vue | 2 +- src/settings/components/page.vue | 5 +- src/settings/context.js | 2 +- src/settings/profile.js | 6 +- src/sites/twitch-clips/index.js | 2 +- src/sites/twitch-clips/modules/chat/line.jsx | 2 +- .../twitch-clips/modules/css_tweaks/index.js | 4 -- src/sites/twitch-clips/modules/theme/index.js | 2 +- .../twitch-twilight/modules/channel_bar.jsx | 64 +------------------ .../modules/chat/emote_menu.jsx | 8 +-- .../twitch-twilight/modules/chat/index.js | 2 + .../twitch-twilight/modules/chat/line.js | 2 +- .../modules/directory/browse_popular.js | 8 +-- .../modules/directory/index.jsx | 8 +-- .../modules/featured-follow.vue | 12 ++-- .../twitch-twilight/modules/host-options.vue | 8 ++- src/sites/twitch-twilight/modules/player.jsx | 2 + src/std-components/autocomplete.vue | 19 ++++-- src/std-components/tab-container.vue | 2 +- src/utilities/object.js | 16 ++--- 60 files changed, 238 insertions(+), 209 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index dbf99241..a62d5f81 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -138,7 +138,6 @@ module.exports = { "react/jsx-no-bind": "error", "react/jsx-no-comment-textnodes": "error", "react/jsx-no-duplicate-props": "error", - "react/jsx-no-literals": ["warn"], "react/jsx-no-target-blank": "error", "react/jsx-sort-props": ["error", { "callbacksLast": true, diff --git a/package.json b/package.json index dcdab956..ed87f392 100755 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "build:all": "npm run build && npm run build:clips", "build": "npm run build:prod", "build:clips": "cross-env NODE_ENV=production webpack --config webpack.clips.prod.js", + "build:clips:dev": "npm run clean && webpack --config webpack.clips.dev.js", "build:stats": "cross-env NODE_ENV=production webpack --config webpack.web.prod.js --json > stats.json", "build:prod": "cross-env NODE_ENV=production webpack --config webpack.web.prod.js", "build:dev": "npm run clean && webpack --config webpack.web.dev.js" @@ -70,7 +71,7 @@ "raven-js": "^3.24.2", "react": "^16.4.1", "safe-regex": "^2.0.2", - "sortablejs": "^1.10.0-rc2", + "sortablejs": "^1.10.0-rc1", "vue": "^2.6.10", "vue-clickaway": "^2.2.2", "vue-color": "^2.4.6", diff --git a/src/addons.js b/src/addons.js index d3ed869e..ede7fa11 100644 --- a/src/addons.js +++ b/src/addons.js @@ -10,9 +10,7 @@ import { createElement } from 'utilities/dom'; import { timeout, has } from 'utilities/object'; import { getBuster } from 'utilities/time'; -const fetchJSON = (url, options) => { - return fetch(url, options).then(r => r.ok ? r.json() : null).catch(() => null); -} +const fetchJSON = (url, options) => fetch(url, options).then(r => r.ok ? r.json() : null).catch(() => null); // ============================================================================ // AddonManager diff --git a/src/i18n.js b/src/i18n.js index 888bcfb2..8ed3b543 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -14,20 +14,18 @@ import NewTransCore from 'utilities/translation-core'; const FACES = ['(・`ω´・)', ';;w;;', 'owo', 'ono', 'oAo', 'oxo', 'ovo;', 'UwU', '>w<', '^w^', '> w >', 'v.v'], - transformText = (ast, fn) => { - return ast.map(node => { - if ( typeof node === 'string' ) - return fn(node); + transformText = (ast, fn) => ast.map(node => { + if ( typeof node === 'string' ) + return fn(node); - else if ( typeof node === 'object' && node.o ) { - const out = Object.assign(node, {o: {}}); - for(const key of Object.keys(node.o)) - out.o[key] = transformText(node.o[key], fn) - } + else if ( typeof node === 'object' && node.o ) { + const out = Object.assign(node, {o: {}}); + for(const key of Object.keys(node.o)) + out.o[key] = transformText(node.o[key], fn) + } - return node; - }) - }, + return node; + }), owo = text => text .replace(/(?:r|l)/g, 'w') diff --git a/src/main.js b/src/main.js index 5c5045f2..23be8f02 100644 --- a/src/main.js +++ b/src/main.js @@ -115,11 +115,9 @@ class FrankerFaceZ extends Module { out.unshift(['initialization', logs.join('\n')]); } - return out.map(x => { - return `${x[0]} + return out.map(x => `${x[0]} ------------------------------------------------------------------------------- -${typeof x[1] === 'string' ? x[1] : JSON.stringify(x[1], null, 4)}` - }).join('\n\n'); +${typeof x[1] === 'string' ? x[1] : JSON.stringify(x[1], null, 4)}`).join('\n\n'); } diff --git a/src/modules/chat/actions/index.jsx b/src/modules/chat/actions/index.jsx index bef558bb..f47a6d02 100644 --- a/src/modules/chat/actions/index.jsx +++ b/src/modules/chat/actions/index.jsx @@ -255,8 +255,8 @@ export default class Actions extends Module { reason_elements.push(
  • {text} @@ -272,8 +272,8 @@ export default class Actions extends Module { reason_elements.push(
  • {rule} diff --git a/src/modules/chat/index.js b/src/modules/chat/index.js index e799658c..4077832b 100644 --- a/src/modules/chat/index.js +++ b/src/modules/chat/index.js @@ -1188,6 +1188,8 @@ export default class Chat extends Module { idx += split_chars(ret).length; out.push(ret); } + + first = false; } if ( ! emotes_only ) diff --git a/src/modules/chat/tokenizers.jsx b/src/modules/chat/tokenizers.jsx index 7be519ac..e04fd975 100644 --- a/src/modules/chat/tokenizers.jsx +++ b/src/modules/chat/tokenizers.jsx @@ -1006,8 +1006,9 @@ export const AddonEmotes = { modifiers = ds.modifierInfo; let name, preview, source, owner, mods, fav_source, emote_id, - plain_name = false, - hide_source = ds.noSource === 'true'; + plain_name = false; + + const hide_source = ds.noSource === 'true'; if ( modifiers && modifiers !== 'null' ) { mods = JSON.parse(modifiers).map(([set_id, emote_id]) => { diff --git a/src/modules/logviewer/index.js b/src/modules/logviewer/index.js index 057a777c..27afef41 100644 --- a/src/modules/logviewer/index.js +++ b/src/modules/logviewer/index.js @@ -27,6 +27,8 @@ export default class Logviewer extends Module { const token = this._token; if ( token && token.token && token.expires > ((Date.now() / 1000) + 300) ) return token.token; + + return null; } diff --git a/src/modules/main_menu/components/action-editor.vue b/src/modules/main_menu/components/action-editor.vue index d9e21a4b..187a27b3 100644 --- a/src/modules/main_menu/components/action-editor.vue +++ b/src/modules/main_menu/components/action-editor.vue @@ -7,7 +7,9 @@
    @@ -406,7 +421,7 @@ export default { const def = this.display && this.data.actions[this.display.action]; if ( ! def || ! def.description ) - return; + return null; const data = this.getData(), out = maybe_call(def.description, this, data, def), @@ -414,6 +429,8 @@ export default { if ( out ) return this.t(i18n, out, data); + + return null; }, visibility() { diff --git a/src/modules/main_menu/components/action-preview.vue b/src/modules/main_menu/components/action-preview.vue index 5752e61a..17e945dc 100644 --- a/src/modules/main_menu/components/action-preview.vue +++ b/src/modules/main_menu/components/action-preview.vue @@ -8,8 +8,8 @@ class="ffz-mod-icon mod-icon tw-c-text-alt-2 tw-font-size-4" > diff --git a/src/modules/main_menu/components/addon-list.vue b/src/modules/main_menu/components/addon-list.vue index 5d4472d9..c722ba3a 100644 --- a/src/modules/main_menu/components/addon-list.vue +++ b/src/modules/main_menu/components/addon-list.vue @@ -23,10 +23,9 @@
    this.shouldShow(addon)); + }, + sorted_addons() { const addons = this.item.getAddons(); diff --git a/src/modules/main_menu/components/badge-highlighting.vue b/src/modules/main_menu/components/badge-highlighting.vue index 557cb070..ae7d687e 100644 --- a/src/modules/main_menu/components/badge-highlighting.vue +++ b/src/modules/main_menu/components/badge-highlighting.vue @@ -13,8 +13,7 @@
      + class="tw-block tw-full-width tw-border-radius-medium tw-font-size-6 tw-full-width tw-select tw-pd-x-1 tw-pd-y-05 tw-mg-y-05" + >
          -
          +
          @@ -39,8 +39,8 @@
          diff --git a/src/modules/main_menu/components/experiments.vue b/src/modules/main_menu/components/experiments.vue index cad3d4c8..e28bdfbb 100644 --- a/src/modules/main_menu/components/experiments.vue +++ b/src/modules/main_menu/components/experiments.vue @@ -13,8 +13,12 @@ class="tw-border-radius-medium tw-font-size-6 tw-select tw-pd-l-1 tw-pd-r-3 tw-pd-y-05 tw-mg-x-05" @change="onSort" > - - + +
          @@ -29,7 +33,6 @@ :data-key="key" >
          -

          {{ exp.name }}

          diff --git a/src/modules/main_menu/components/filter-rule-editor.vue b/src/modules/main_menu/components/filter-rule-editor.vue index d737728b..5c0e6b09 100644 --- a/src/modules/main_menu/components/filter-rule-editor.vue +++ b/src/modules/main_menu/components/filter-rule-editor.vue @@ -6,10 +6,10 @@
          -

          FrankerFaceZ

          +

          + FrankerFaceZ +

          {{ t('home.tag-line', 'The Twitch Enhancement Suite') }} @@ -11,8 +13,6 @@
          - -
          diff --git a/src/modules/main_menu/components/main-menu.vue b/src/modules/main_menu/components/main-menu.vue index 40f7bf0d..55aa30ef 100644 --- a/src/modules/main_menu/components/main-menu.vue +++ b/src/modules/main_menu/components/main-menu.vue @@ -4,7 +4,9 @@ class="ffz-dialog ffz-main-menu tw-elevation-3 tw-c-background-alt tw-c-text-base tw-border tw-flex tw-flex-nowrap tw-flex-column" >
          -

          FrankerFaceZ

          +

          + FrankerFaceZ +

          diff --git a/src/modules/main_menu/components/menu-container.vue b/src/modules/main_menu/components/menu-container.vue index 65aef0b3..2be8d246 100644 --- a/src/modules/main_menu/components/menu-container.vue +++ b/src/modules/main_menu/components/menu-container.vue @@ -6,8 +6,9 @@
          + > + +
        • this.shouldShow(item)); } }, diff --git a/src/modules/main_menu/components/profile-editor.vue b/src/modules/main_menu/components/profile-editor.vue index de9e3de7..540bc470 100644 --- a/src/modules/main_menu/components/profile-editor.vue +++ b/src/modules/main_menu/components/profile-editor.vue @@ -127,9 +127,9 @@
        • diff --git a/src/modules/main_menu/components/profile-selector.vue b/src/modules/main_menu/components/profile-selector.vue index fe02c2a0..d64a909a 100644 --- a/src/modules/main_menu/components/profile-selector.vue +++ b/src/modules/main_menu/components/profile-selector.vue @@ -16,8 +16,8 @@ {{ t(context.currentProfile.i18n_key, context.currentProfile.title, context.currentProfile) }}
          {is_emoji && this.modifyStreams(res), false); } - onEnable() { + /*onEnable() { // Popular Directory Channel Cards - /*this.apollo.ensureQuery( + this.apollo.ensureQuery( 'BrowsePage_Popular', 'data.streams.edges.0.node.createdAt' - );*/ - } + ); + }*/ modifyStreams(res) { // eslint-disable-line class-methods-use-this const edges = get('data.streams.edges', res); diff --git a/src/sites/twitch-twilight/modules/directory/index.jsx b/src/sites/twitch-twilight/modules/directory/index.jsx index d6c38574..a2f96da0 100644 --- a/src/sites/twitch-twilight/modules/directory/index.jsx +++ b/src/sites/twitch-twilight/modules/directory/index.jsx @@ -233,11 +233,11 @@ export default class Directory extends SiteModule { channel_url = `/${channel.login}`, game_url = game && `/directory/game/${stream.game.name}`, - user_link = {channel.displayName}, - game_link = game && {game.name}; + user_link = {channel.displayName}, + game_link = game && {game.name}; return (
          - +

          {stream.title}

          @@ -261,7 +261,7 @@ export default class Directory extends SiteModule { nodes.length > 1 ? t.i18n.t('directory.hosted.by-many', 'Hosted by {count,number} channel{count,en_plural}', nodes.length) : t.i18n.tList('directory.hosted.by-one', 'Hosted by {user}', { - user: {nodes[0].displayName} + user: {nodes[0].displayName} }) }

          diff --git a/src/sites/twitch-twilight/modules/featured-follow.vue b/src/sites/twitch-twilight/modules/featured-follow.vue index aac902d5..15331ab7 100644 --- a/src/sites/twitch-twilight/modules/featured-follow.vue +++ b/src/sites/twitch-twilight/modules/featured-follow.vue @@ -3,14 +3,14 @@

          {{ t('metadata.featured-follow.title', 'Featured Channels') }}

          -
          +

          {{ user.displayName }}

          -
          +
          {{ t('featured-follow.error', 'An error occured.') }} @@ -43,7 +43,7 @@ @click="clickWithTip($event, unfollowUser, user.id)" > -
          @@ -158,7 +160,7 @@
          {{ t('metadata.host.setting.strategy.description', 'If enabled, auto-hosts will be picked at random. ' + - "Otherwise they're picked in order.") }} + "Otherwise they're picked in order.") }}
          diff --git a/src/sites/twitch-twilight/modules/player.jsx b/src/sites/twitch-twilight/modules/player.jsx index 3f27b9c1..67d2e738 100644 --- a/src/sites/twitch-twilight/modules/player.jsx +++ b/src/sites/twitch-twilight/modules/player.jsx @@ -777,5 +777,7 @@ export default class Player extends Module { for(const inst of this.Player.instances) if ( inst && inst.player ) return inst.player; + + return null; } } \ No newline at end of file diff --git a/src/std-components/autocomplete.vue b/src/std-components/autocomplete.vue index 407b4813..bea5de50 100644 --- a/src/std-components/autocomplete.vue +++ b/src/std-components/autocomplete.vue @@ -8,9 +8,9 @@