refactor(ui): Switch statement, and handle other modes in group actions

This commit is contained in:
Michael Poutre 2023-08-29 00:24:31 -07:00
parent e30d546e38
commit 6944288aff
No known key found for this signature in database
GPG Key ID: ACEAC6CFD77EB15E

View File

@ -40,72 +40,103 @@ app.registerExtension({
// Modes // Modes
// 0: Always // 0: Always
// 1: On Event
// 2: Never // 2: Never
// 3: On Trigger
// 4: Bypass // 4: Bypass
// If all nodes are the same mode, add a menu option to change the mode // If all nodes are the same mode, add a menu option to change the mode
if (allNodesAreSameMode) { if (allNodesAreSameMode) {
const mode = nodesInGroup[0].mode; const mode = nodesInGroup[0].mode;
// All nodes are always, option to disable, and bypass switch (mode) {
if (mode === 0) { case 0:
options.push({ // All nodes are always, option to disable, and bypass
content: "Disable Group Nodes", options.push({
callback: () => { content: "Set Group Nodes to Never",
for (const node of nodesInGroup) { callback: () => {
setNodeMode(node, 2); for (const node of nodesInGroup) {
setNodeMode(node, 2);
}
} }
} });
}); options.push({
options.push({ content: "Bypass Group Nodes",
content: "Bypass Group Nodes", callback: () => {
callback: () => { for (const node of nodesInGroup) {
for (const node of nodesInGroup) { setNodeMode(node, 4);
setNodeMode(node, 4); }
} }
} });
}) break;
} case 2:
// All nodes are never, option to enable, and bypass // All nodes are never, option to enable, and bypass
if (mode === 2) { options.push({
options.push({ content: "Set Group Nodes to Always",
content: "Enable Group Nodes", callback: () => {
callback: () => { for (const node of nodesInGroup) {
for (const node of nodesInGroup) { setNodeMode(node, 0);
setNodeMode(node, 0); }
} }
} });
}); options.push({
options.push({ content: "Bypass Group Nodes",
content: "Bypass Group Nodes", callback: () => {
callback: () => { for (const node of nodesInGroup) {
for (const node of nodesInGroup) { setNodeMode(node, 4);
setNodeMode(node, 4); }
} }
} });
}) break;
} case 4:
// All nodes are bypass, option to enable, and disable // All nodes are bypass, option to enable, and disable
if (mode === 4) { options.push({
options.push({ content: "Set Group Nodes to Always",
content: "Enable Group Nodes", callback: () => {
callback: () => { for (const node of nodesInGroup) {
for (const node of nodesInGroup) { setNodeMode(node, 0);
setNodeMode(node, 0); }
} }
} });
}); options.push({
options.push({ content: "Set Group Nodes to Never",
content: "Disable Group Nodes", callback: () => {
callback: () => { for (const node of nodesInGroup) {
for (const node of nodesInGroup) { setNodeMode(node, 2);
setNodeMode(node, 2); }
} }
} });
}) break;
default:
// All nodes are On Trigger or On Event(Or other?), option to disable, set to always, or bypass
options.push({
content: "Set Group Nodes to Always",
callback: () => {
for (const node of nodesInGroup) {
setNodeMode(node, 0);
}
}
});
options.push({
content: "Set Group Nodes to Never",
callback: () => {
for (const node of nodesInGroup) {
setNodeMode(node, 2);
}
}
});
options.push({
content: "Bypass Group Nodes",
callback: () => {
for (const node of nodesInGroup) {
setNodeMode(node, 4);
}
}
});
break;
} }
} else { } else {
// Nodes are not all the same mode, add a menu option to change the mode to always, never, or bypass // Nodes are not all the same mode, add a menu option to change the mode to always, never, or bypass
options.push({ options.push({
content: "Enable Group Nodes", content: "Set Group Nodes to Always",
callback: () => { callback: () => {
for (const node of nodesInGroup) { for (const node of nodesInGroup) {
setNodeMode(node, 0); setNodeMode(node, 0);
@ -113,7 +144,7 @@ app.registerExtension({
} }
}); });
options.push({ options.push({
content: "Disable Group Nodes", content: "Set Group Nodes to Never",
callback: () => { callback: () => {
for (const node of nodesInGroup) { for (const node of nodesInGroup) {
setNodeMode(node, 2); setNodeMode(node, 2);