From 8b9e6db70cae893ba0fec032557e141d17173224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Tron=C3=AD=C4=8Dek?= <29888641+filiptronicek@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:13:59 +0100 Subject: [PATCH] Add support for empty repos in GL --- src/button/button-contributions.ts | 10 +++++++++- src/contents/button.tsx | 3 +++ test/src/button-contributions-copy.ts | 12 ++++++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/button/button-contributions.ts b/src/button/button-contributions.ts index d4c3a23..f8c7f35 100644 --- a/src/button/button-contributions.ts +++ b/src/button/button-contributions.ts @@ -202,6 +202,13 @@ export const buttonContributions: ButtonContributionParams[] = [ }, ], }, + { + id: "gl-repo-empty", + exampleUrls: ["https://gitlab.com/filiptronicek/empty"], + selector: `xpath://*[@id="js-project-show-empty-page"]/div[1]/div[1]/div[2]`, + containerElement: { type: "div", props: { marginLeft: "8px" } }, + application: "gitlab", + }, { id: "gl-file", exampleUrls: [ @@ -412,7 +419,8 @@ export const buttonContributions: ButtonContributionParams[] = [ ], selector: 'xpath://*[@id="main"]/div/div/div[1]/div/div/div/div[1]/div/div[2]/div/div[2]/div/div', // grandparent div of the "Request changes" and "Approve" buttons containerElement: createElement("div", {}), - insertBefore: 'xpath:(//*[@id="main"]/div/div/div[1]/div/div/div/div[1]/div/div[2]/div/div[2]/div/div/div)[last()]', // note the [last()] to insert before the last child (the kebab menu) + insertBefore: + 'xpath:(//*[@id="main"]/div/div/div[1]/div/div/div/div[1]/div/div[2]/div/div[2]/div/div/div)[last()]', // note the [last()] to insert before the last child (the kebab menu) application: "bitbucket", }, { diff --git a/src/contents/button.tsx b/src/contents/button.tsx index f7cade0..0df625b 100644 --- a/src/contents/button.tsx +++ b/src/contents/button.tsx @@ -108,6 +108,9 @@ class ButtonContributionManager { return this.buttons.get(this.getContainerId(this.active.contribution)); } + /** + * Checks if the contribution applies to the current page. + */ private isActive(contrib: ButtonContributionParams) { if (typeof contrib.match === "function" && !contrib.match()) { return false; diff --git a/test/src/button-contributions-copy.ts b/test/src/button-contributions-copy.ts index c3e6f6d..f8c7f35 100644 --- a/test/src/button-contributions-copy.ts +++ b/test/src/button-contributions-copy.ts @@ -202,6 +202,13 @@ export const buttonContributions: ButtonContributionParams[] = [ }, ], }, + { + id: "gl-repo-empty", + exampleUrls: ["https://gitlab.com/filiptronicek/empty"], + selector: `xpath://*[@id="js-project-show-empty-page"]/div[1]/div[1]/div[2]`, + containerElement: { type: "div", props: { marginLeft: "8px" } }, + application: "gitlab", + }, { id: "gl-file", exampleUrls: [ @@ -410,9 +417,10 @@ export const buttonContributions: ButtonContributionParams[] = [ exampleUrls: [ // "https://bitbucket.org/efftinge/browser-extension-test/pull-requests/1" ], - selector: 'xpath://*[@id="main"]/div/div/div[1]/div/div/div[1]/div/div[2]/div/div[2]/div/div', // grandparent div of the "Request changes" and "Approve" buttons + selector: 'xpath://*[@id="main"]/div/div/div[1]/div/div/div/div[1]/div/div[2]/div/div[2]/div/div', // grandparent div of the "Request changes" and "Approve" buttons containerElement: createElement("div", {}), - insertBefore: 'xpath:(//*[@id="main"]/div/div/div[1]/div/div/div[1]/div/div[2]/div/div[2]/div/div/div)[last()]', // note the [last()] to insert before the last child (the kebab menu) + insertBefore: + 'xpath:(//*[@id="main"]/div/div/div[1]/div/div/div/div[1]/div/div[2]/div/div[2]/div/div/div)[last()]', // note the [last()] to insert before the last child (the kebab menu) application: "bitbucket", }, {