From 3fb6d5957a51021915a3d23dcce296918c71287b Mon Sep 17 00:00:00 2001 From: SirStendec Date: Wed, 17 Feb 2021 15:24:07 -0500 Subject: [PATCH] 4.20.67 * Added: Warning on the Profile Manager about profiles not matching when viewing the FFZ Control Center in a pop-out. * API Added: Badges can now have custom CSS. * API Added: Badges can now have a `click_handler()` method for running JS when clicked. --- package.json | 2 +- src/modules/chat/badges.jsx | 14 +++- .../main_menu/components/profile-manager.vue | 40 ++++++++++ src/modules/main_menu/index.js | 76 ++++++++++++++++++- src/settings/context.js | 15 +++- src/settings/index.js | 46 +++++++++++ 6 files changed, 183 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 467bac84..3efd6d34 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "frankerfacez", "author": "Dan Salvato LLC", - "version": "4.20.66", + "version": "4.20.67", "description": "FrankerFaceZ is a Twitch enhancement suite.", "license": "Apache-2.0", "scripts": { diff --git a/src/modules/chat/badges.jsx b/src/modules/chat/badges.jsx index 1c589554..9b91426c 100644 --- a/src/modules/chat/badges.jsx +++ b/src/modules/chat/badges.jsx @@ -162,7 +162,7 @@ export function generateBadgeCSS(badge, version, data, style, is_dark, badge_ver image, image_set, svg - })}`; + })}${data.css || ''}`; } @@ -464,8 +464,11 @@ export default class Badges extends Module { if ( ! container.dataset.roomId ) container = target.closest('[data-room-id]'); - const room_id = container?.dataset?.roomId, - room_login = container?.dataset?.room, + const ds = container?.dataset, + room_id = ds?.roomId, + room_login = ds?.room, + user_id = ds?.userId, + user_login = ds?.user, data = JSON.parse(target.dataset.badgeData); if ( data == null ) @@ -494,6 +497,11 @@ export default class Badges extends Module { } else if ( p === 'ffz' ) { const badge = this.badges[target.dataset.badge]; + if ( badge?.click_handler ) { + url = badge.click_handler(user_id, user_login, room_id, room_login, data, event); + break; + } + if ( badge?.click_url ) { url = badge.click_url; break; diff --git a/src/modules/main_menu/components/profile-manager.vue b/src/modules/main_menu/components/profile-manager.vue index 296a1913..bb993877 100644 --- a/src/modules/main_menu/components/profile-manager.vue +++ b/src/modules/main_menu/components/profile-manager.vue @@ -1,5 +1,40 @@