1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-28 06:03:40 +00:00

[SG-58] Avatar color selector (#3691)

* changes

* merge

* undo

* work

* stuffs

* chore: added custom color picker

* oops

* chore: everything but the broken sink

* picker v2

* fix: cleanup

* fix: linty

* fix: use tailwind

* fix: use tailwind

* undo: merge error

* remove: old color picker

* fix: merge issue

* chore: use input vs component

* fix: move logic out!

* fix: revert changes to bit-avatar

* fix: cleanup undos

* feat: color lookup for "me" badge in vault

* fix: naming stuff

* fix: event emitter

* fix: linty

* fix: protect

* fix: remove v1 states
work: navatar

* fix: big

* fix: messages merge issue

* bug: differing bg colors for generated components

* feat: added sync stuff

* fix: cli

* fix: remove service refs, use state

* fix: moved from EventEmitter to Subjects

* fix: srs

* fix: strict stuff is nice tbh

* SG-920 + SG-921 (#4342)

* SG-920 + SG-921

* Update change-avatar.component.html

* Update selectable-avatar.component.ts

* [SG-926] [SG-58] [Defect] - Selected Avatar color does not persist in the Account Settings menu (#4359)

* SG-926

* fix: comment

* fix: undo

* fix: imp

* work: done with static values (#4272)

* [SG-35] (#4361)

Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
This commit is contained in:
Brandon Maharaj
2023-01-01 10:30:09 -05:00
committed by GitHub
parent 0a734ce338
commit d41b3b13ea
27 changed files with 533 additions and 14 deletions

View File

@@ -1,6 +1,8 @@
import { Component, EventEmitter, Input, OnInit, Output } from "@angular/core";
import { AvatarUpdateService } from "@bitwarden/common/abstractions/account/avatar-update.service";
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
import { TokenService } from "@bitwarden/common/abstractions/token.service";
import { Utils } from "@bitwarden/common/misc/utils";
@Component({
@@ -15,18 +17,29 @@ export class OrganizationNameBadgeComponent implements OnInit {
color: string;
textColor: string;
isMe: boolean;
constructor(private i18nService: I18nService) {}
constructor(
private i18nService: I18nService,
private avatarService: AvatarUpdateService,
private tokenService: TokenService
) {}
ngOnInit(): void {
async ngOnInit(): Promise<void> {
if (this.organizationName == null || this.organizationName === "") {
this.organizationName = this.i18nService.t("me");
this.color = Utils.stringToColor(this.profileName.toUpperCase());
this.isMe = true;
}
if (this.color == null) {
this.color = Utils.stringToColor(this.organizationName.toUpperCase());
if (this.isMe) {
this.color = await this.avatarService.loadColorFromState();
if (this.color == null) {
const userName = await this.tokenService.getName();
this.color = Utils.stringToColor(userName.toUpperCase());
}
} else {
this.color = Utils.stringToColor(this.organizationName);
}
this.textColor = Utils.pickTextColorBasedOnBgColor(this.color);
this.textColor = Utils.pickTextColorBasedOnBgColor(this.color, 135, true) + "!important";
}
emitOnOrganizationClicked() {