Skip to content

Commit

Permalink
Zoom and Pan: use elementIDs from closure scope
Browse files Browse the repository at this point in the history
  • Loading branch information
akx committed Jun 5, 2023
1 parent 8fd20bd commit 68cda4f
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
onUiLoaded(async() => {
const elementIDs = {
img2imgTabs: "#mode_img2img .tab-nav",
inpaint: "#img2maskimg",
inpaintSketch: "#inpaint_sketch",
rangeGroup: "#img2img_column_size",
sketch: "#img2img_sketch",
};
const tabNameToElementId = {
"Inpaint sketch": elementIDs.inpaintSketch,
"Inpaint": elementIDs.inpaint,
"Sketch": elementIDs.sketch,
};

// Helper functions
// Get active tab
function getActiveTab(elements, all = false) {
Expand All @@ -14,14 +27,9 @@ onUiLoaded(async() => {
}

// Get tab ID
function getTabId(elements, elementIDs) {
function getTabId(elements) {
const activeTab = getActiveTab(elements);
const tabIdLookup = {
"Sketch": elementIDs.sketch,
"Inpaint sketch": elementIDs.inpaintSketch,
"Inpaint": elementIDs.inpaint
};
return tabIdLookup[activeTab.innerText];
return tabNameToElementId[activeTab.innerText];
}

// Wait until opts loaded
Expand Down Expand Up @@ -80,8 +88,8 @@ onUiLoaded(async() => {
* to avoid breaking the canvas. Additionally, the function adjusts the mask to work correctly on
* very long images.
*/
function restoreImgRedMask(elements, elementIDs) {
const mainTabId = getTabId(elements, elementIDs);
function restoreImgRedMask(elements) {
const mainTabId = getTabId(elements);

if (!mainTabId) return;

Expand Down Expand Up @@ -135,14 +143,6 @@ onUiLoaded(async() => {
let mouseX, mouseY;
let activeElement;

const elementIDs = {
sketch: "#img2img_sketch",
inpaint: "#img2maskimg",
inpaintSketch: "#inpaint_sketch",
img2imgTabs: "#mode_img2img .tab-nav",
rangeGroup: "#img2img_column_size"
};

async function getElements() {
const elements = await Promise.all(
Object.values(elementIDs).map(id => gradioApp().querySelector(id))
Expand All @@ -164,7 +164,7 @@ onUiLoaded(async() => {

rangeInputs.forEach(input => {
if (input) {
input.addEventListener("input", () => restoreImgRedMask(elements, elementIDs));
input.addEventListener("input", () => restoreImgRedMask(elements));
}
});

Expand Down

0 comments on commit 68cda4f

Please sign in to comment.