Skip to content

Commit 5f4f579

Browse files
steveseguinactions-user
authored andcommitted
**重构弹出窗口的 Mechanics 部分并修复相关测试**
本次提交重构了 `popup.html` 中的 `⚙️ Mechanics` 设置部分,将其拆分为三个更清晰、功能更集中的子部分: 1. `⚙️ Mechanics - Events & Capture` 2. `⚙️ Mechanics - Message Processing` 3. `⚙️ Mechanics - Connections & Integrations` **主要变更:** - **`popup.html`**:为上述每个新部分创建了独立的 HTML 容器(`div`)、折叠控件(`collapsible`)和标签。 - **`popup.js`**:更新了 `BEGINNER_ADVANCED_OPTION_SELECTORS` 映射,将相关的选项选择器移入对应的新部分 ID 中,并调整了 `BEGINNER_ADVANCED_OPTION_HEADINGS` 配置。 - **`tests/popup-search.test.js`**:新增测试用例,验证新的三个部分在 HTML 中均存在且具有正确的标签,确保搜索和 UI 功能完整。 此重构旨在改善设置面板的组织结构,使功能分组更直观,并可能解决因部分过于臃肿导致的 UI 问题或崩溃。 [auto-enhanced]
1 parent c09749e commit 5f4f579

3 files changed

Lines changed: 80 additions & 3 deletions

File tree

popup.html

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7050,7 +7050,7 @@ <h3>Custom Injection</h3>
70507050
<div class="wrapper beginner-basic">
70517051
<div class="collapsible">
70527052
<input type="checkbox" class="collapsible-input" id="wrapper-global-mechanics-options" />
7053-
<label class="collapsible-label" for="wrapper-global-mechanics-options"><span data-translate="mechanics">⚙️ Mechanics</span></label>
7053+
<label class="collapsible-label" for="wrapper-global-mechanics-options"><span><span data-translate="mechanics">⚙️ Mechanics</span> - Events &amp; Capture</span></label>
70547054
<div class="collapsible-text">
70557055
<div class="options">
70567056
<div class="options_group">
@@ -7190,9 +7190,22 @@ <h3>Custom Injection</h3>
71907190
<input type="checkbox" data-setting="delaytwitch" />
71917191
<span class="slider round"></span>
71927192
</label>
7193-
<img class="icon" src="./sources/images/twitch.png" style="display: inline-block;" />
7193+
<img class="icon" src="./sources/images/twitch.png" style="display: inline-block;" />
71947194
<span data-translate="delay-twitch"> Delay twitch to give mods/bots time to delete</span>
71957195
</div>
7196+
</div>
7197+
</div>
7198+
</div>
7199+
</div>
7200+
</div>
7201+
7202+
<div class="wrapper beginner-basic">
7203+
<div class="collapsible">
7204+
<input type="checkbox" class="collapsible-input" id="wrapper-global-message-processing-options" />
7205+
<label class="collapsible-label" for="wrapper-global-message-processing-options"><span><span data-translate="mechanics">⚙️ Mechanics</span> - Message Processing</span></label>
7206+
<div class="collapsible-text">
7207+
<div class="options">
7208+
<div class="options_group">
71967209
<div title="Enable BTTV emotes - YT/TW channels + globals">
71977210
<label class="switch">
71987211
<input type="checkbox" data-setting="bttv" />
@@ -7264,6 +7277,19 @@ <h3>Custom Injection</h3>
72647277
</label>
72657278
<span data-translate="pump-the-numbers">📈 Multiply viewer count by 1.75x</span>
72667279
</div>
7280+
</div>
7281+
</div>
7282+
</div>
7283+
</div>
7284+
</div>
7285+
7286+
<div class="wrapper beginner-basic">
7287+
<div class="collapsible">
7288+
<input type="checkbox" class="collapsible-input" id="wrapper-global-connections-integrations-options" />
7289+
<label class="collapsible-label" for="wrapper-global-connections-integrations-options"><span><span data-translate="mechanics">⚙️ Mechanics</span> - Connections &amp; Integrations</span></label>
7290+
<div class="collapsible-text">
7291+
<div class="options">
7292+
<div class="options_group">
72677293
<div>
72687294
<h3>Printer Control</h3>
72697295
<div class="textInputContainer" style="display: inline-block; width: 250px;">

popup.js

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5109,6 +5109,48 @@ var BEGINNER_ADVANCED_OPTION_SELECTORS = {
51095109
'#midiConfig',
51105110
'#midiCommands'
51115111
],
5112+
"wrapper-global-message-processing-options": [
5113+
'[data-setting="pronounscombined"]',
5114+
'[data-setting="discordmemberships"]',
5115+
'[data-setting="limitedyoutubememberchat"]',
5116+
'[data-setting="limitedtwitchmemberchat"]',
5117+
'[data-setting="addkarma"]',
5118+
'[data-setting="pumpTheNumbers"]'
5119+
],
5120+
"wrapper-global-connections-integrations-options": [
5121+
'[data-textsetting="printerName"]',
5122+
'[data-setting="sharestreamid"]',
5123+
'[data-setting="disableRelayThrottle"]',
5124+
'[data-setting="disablehost"]',
5125+
'[data-setting="socketserver"]',
5126+
'[data-setting="server2additivedelivery"]',
5127+
'[data-setting="lanonly"]',
5128+
'[data-setting="ssc"]',
5129+
'[data-textsetting="sscapikey"]',
5130+
'[data-setting="videostatspoller"]',
5131+
'[data-textsetting="videostatsurl"]',
5132+
'[data-textsetting="videostatspublisher"]',
5133+
'[data-textsetting="videostatsapplication"]',
5134+
'[data-textsetting="videostatskey"]',
5135+
'[data-textsetting="videostatsapikey"]',
5136+
'[data-textsetting="videostatsusername"]',
5137+
'[data-textsetting="videostatspassword"]',
5138+
'[data-numbersetting="videostatsinterval"]',
5139+
'[data-textsetting="videostatslabel"]',
5140+
'[data-setting="streamerbot"]',
5141+
'[data-textsetting="streamerbotendpoint"]',
5142+
'[data-textsetting="streamerbotpassword"]',
5143+
'[data-textsetting="streamerbotactionid"]',
5144+
'[data-setting="h2r"]',
5145+
'[data-textsetting="h2rserver"]',
5146+
'[data-setting="post"]',
5147+
'[data-textsetting="postserver"]',
5148+
'[data-setting="postalldiscord"]',
5149+
'[data-textsetting="postallserverdiscord"]',
5150+
'[data-setting="postdiscord"]',
5151+
'[data-textsetting="postserverdiscord"]',
5152+
'[data-setting="webhookrelay"]'
5153+
],
51125154
"wrapper-global-message-visibility-options": [
51135155
'[data-setting="hideallreplies"]',
51145156
'[data-setting="firstsourceonly"]',
@@ -5135,7 +5177,7 @@ var BEGINNER_ADVANCED_OPTION_SELECTORS = {
51355177

51365178
var BEGINNER_ADVANCED_OPTION_HEADINGS = {
51375179
"wrapper-chat-message-styling-options": ["Text Glow"],
5138-
"wrapper-global-mechanics-options": ["Printer Control"]
5180+
"wrapper-global-connections-integrations-options": ["Printer Control"]
51395181
};
51405182

51415183
var BEGINNER_ADVANCED_OPTION_HEADING_SECTIONS = {

tests/popup-search.test.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const fs = require("node:fs");
33
const path = require("node:path");
44

55
const popupSource = fs.readFileSync(path.resolve(__dirname, "..", "popup.js"), "utf8");
6+
const popupHtml = fs.readFileSync(path.resolve(__dirname, "..", "popup.html"), "utf8");
67

78
function extractFunction(source, name) {
89
const start = source.indexOf(`function ${name}(`);
@@ -79,4 +80,12 @@ assert.match(
7980
"Popup search must debounce typing long enough to avoid rerendering on every keystroke"
8081
);
8182

83+
[
84+
["wrapper-global-mechanics-options", "Events &amp; Capture"],
85+
["wrapper-global-message-processing-options", "Message Processing"],
86+
["wrapper-global-connections-integrations-options", "Connections &amp; Integrations"]
87+
].forEach(([id, label]) => {
88+
assert.match(popupHtml, new RegExp(`id="${id}"[\\s\\S]*?for="${id}"[\\s\\S]*?${label}`), `${label} section is missing`);
89+
});
90+
8291
console.log("popup search tests passed");

0 commit comments

Comments
 (0)