From e115e58f9c96ba4acff7e21021333b48b73f4a9f Mon Sep 17 00:00:00 2001 From: Luke Granger-Brown Date: Sun, 20 Dec 2020 15:12:40 +0000 Subject: [PATCH] fix(3p/gerrit): fix left padding on account chip We don't have an avatar provider at the moment, so it's wonky. I'll make this a CL upstream as well once my work laptop has charged. Change-Id: I79754560b2de6981508ba7e10faf6b50cb9c3f8f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2266 Tested-by: BuildkiteCI Reviewed-by: tazjin --- ...g-on-account-chip-if-no-avatar-provi.patch | 111 ++++++++++++++++++ third_party/gerrit/default.nix | 1 + 2 files changed, 112 insertions(+) create mode 100644 third_party/gerrit/0007-Keep-left-padding-on-account-chip-if-no-avatar-provi.patch diff --git a/third_party/gerrit/0007-Keep-left-padding-on-account-chip-if-no-avatar-provi.patch b/third_party/gerrit/0007-Keep-left-padding-on-account-chip-if-no-avatar-provi.patch new file mode 100644 index 000000000..2ceeb1310 --- /dev/null +++ b/third_party/gerrit/0007-Keep-left-padding-on-account-chip-if-no-avatar-provi.patch @@ -0,0 +1,111 @@ +From e796e238d8fcf442443f66de2fd0f3944473fd44 Mon Sep 17 00:00:00 2001 +From: Luke Granger-Brown +Date: Sun, 20 Dec 2020 14:29:22 +0000 +Subject: [PATCH 7/6] Keep left padding on account chip if no avatar provider + present + +At the moment, if there's no plugin that provides avatars then the left +padding is still removed if there *would* be an avatar there, which +leads to some weirdly offset text. + +Change-Id: I1ff0745aa267d7fb227e39460c8ea80ef5ec2f55 +--- + .../gr-account-label/gr-account-label.ts | 6 ++ + .../gr-account-label/gr-account-label_test.js | 63 +++++++++++++++++++ + 2 files changed, 69 insertions(+) + +diff --git a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.ts b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.ts +index a6c4201a66..416a77526d 100644 +--- a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.ts ++++ b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.ts +@@ -147,7 +147,13 @@ export class GrAccountLabel extends GestureEventListeners( + change: ChangeInfo, + force: boolean + ) { ++ const avatarsAvailable = ( ++ !!config && ++ !!config.change && ++ !!config.plugin.has_avatars ++ ); + return ( ++ avatarsAvailable && + !hideAvatar && + !this._hasAttention(config, highlight, account, change, force) + ); +diff --git a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.js b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.js +index 42b1dd7184..111d0550cd 100644 +--- a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.js ++++ b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.js +@@ -46,6 +46,69 @@ suite('gr-account-label tests', () => { + }); + }); + ++ suite('_computeCancelLeftPadding', () => { ++ test('config not ready', () => { ++ assert.isFalse( ++ element._computeCancelLeftPadding( ++ /*hideAvatar=*/false, ++ /*config=*/undefined, ++ /*highlight=*/false, ++ /*account=*/element.account, ++ /*change=*/element.change, ++ /*force=*/false)); ++ }); ++ ++ test('no avatar provider', () => { ++ const config = { ++ plugin: {}, ++ }; ++ assert.isFalse( ++ element._computeCancelLeftPadding( ++ /*hideAvatar=*/false, ++ /*config=*/config, ++ /*highlight=*/false, ++ /*account=*/element.account, ++ /*change=*/element.change, ++ /*force=*/false)); ++ }); ++ ++ test('avatar provider present', () => { ++ const config = { ++ plugin: { ++ has_avatars: true, ++ }, ++ }; ++ assert.isTrue( ++ element._computeCancelLeftPadding( ++ /*hideAvatar=*/false, ++ /*config=*/config, ++ /*highlight=*/false, ++ /*account=*/element.account, ++ /*change=*/element.change, ++ /*force=*/false)); ++ }); ++ ++ test('has attention', () => { ++ const config = { ++ change: {enable_attention_set: true}, ++ user: {anonymous_coward_name: 'Anonymous Coward'}, ++ plugin: {has_avatars: true}, ++ }; ++ const selfAccount = createAccount('kermit', 31); ++ const account = createAccount('ernie', 42); ++ const change = {attention_set: {42: {}}}; ++ ++ assert.isFalse( ++ element._computeCancelLeftPadding( ++ /*hideAvatar=*/false, ++ /*config=*/config, ++ /*highlight=*/true, ++ /*account=*/account, ++ /*change=*/change, ++ /*force=*/false)); ++ }); ++ }); ++ + suite('_computeName', () => { + test('not showing anonymous', () => { + const account = {name: 'Wyatt'}; +-- +2.29.2 + diff --git a/third_party/gerrit/default.nix b/third_party/gerrit/default.nix index 22a937560..e62ade141 100644 --- a/third_party/gerrit/default.nix +++ b/third_party/gerrit/default.nix @@ -47,6 +47,7 @@ pkgs.lib.makeOverridable pkgs.buildBazelPackage { ./0004-Add-titles-to-CLs-over-HTTP.patch ./0005-When-using-local-fonts-always-assume-Gerrit-is-mount.patch ./0006-Always-use-Google-Fonts.patch + ./0007-Keep-left-padding-on-account-chip-if-no-avatar-provi.patch ]; bazelTarget = "release";