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
1 changed files with 83 additions and 52 deletions

View File

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