1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-10 05:30:01 +00:00

multiple count configs into one array and a static validator method

This commit is contained in:
Tom
2025-03-20 12:30:25 -04:00
parent d4e54c234f
commit 4c0e3865ca
4 changed files with 72 additions and 117 deletions

View File

@@ -9,107 +9,68 @@ import { Achievement, AchievementId, MetricId } from "../../types";
*/
export class ItemCreatedCountConfig implements Achievement {
// Define the achievements here
static readonly AllConfigs: ItemCreatedCountConfig[] = [
// Any vault items added
new ItemCreatedCountConfig("vault-item-created", "1st item added", 1),
new ItemCreatedCountConfig("vault-items-created-ten", "10 items created", 10),
new ItemCreatedCountConfig("vault-items-created-fifty", "50 items created", 50),
new ItemCreatedCountConfig("vault-items-created-one-hundred", "100 items created", 100),
// Any vault items added
static readonly ItemCreated = new ItemCreatedCountConfig(
"vault-item-created",
"1st item added",
1,
);
static readonly ItemsCreated10 = new ItemCreatedCountConfig(
"vault-items-created-ten",
"10 items created",
10,
);
static readonly ItemsCreated50 = new ItemCreatedCountConfig(
"vault-items-created-fifty",
"50 items created",
50,
);
static readonly ItemsCreated100 = new ItemCreatedCountConfig(
"vault-items-created-one-hundred",
"100 items created",
100,
);
// Login items added
new ItemCreatedCountConfig("login-item-created", "1st login item added", 1, CipherType.Login),
new ItemCreatedCountConfig(
"login-item-created-ten",
"10 login items added",
10,
CipherType.Login,
),
new ItemCreatedCountConfig(
"login-item-created-fifty",
"50 login items added",
50,
CipherType.Login,
),
new ItemCreatedCountConfig(
"login-item-created-one-hundred",
"100 login items added",
100,
CipherType.Login,
),
// Login items added
static readonly LoginItemCreated = new ItemCreatedCountConfig(
"login-item-created",
"1st login item added",
1,
CipherType.Login,
);
static readonly LoginItemCreated10 = new ItemCreatedCountConfig(
"login-item-created-ten",
"10 login items added",
10,
CipherType.Login,
);
static readonly LoginItemCreated50 = new ItemCreatedCountConfig(
"login-item-created-fifty",
"50 login items added",
50,
CipherType.Login,
);
static readonly LoginItemCreated100 = new ItemCreatedCountConfig(
"login-item-created-one-hundred",
"100 login items added",
100,
CipherType.Login,
);
// Card items
new ItemCreatedCountConfig("card-item-created", "1st card item added", 1, CipherType.Card),
new ItemCreatedCountConfig("card-item-created-3", "3rd card items added", 3, CipherType.Card),
new ItemCreatedCountConfig("card-item-created-5", "5th card item added", 5, CipherType.Card),
// Card items
static readonly CardItemCreated = new ItemCreatedCountConfig(
"card-item-created",
"1st card item added",
1,
CipherType.Card,
);
static readonly CardItemCreated3 = new ItemCreatedCountConfig(
"card-item-created-3",
"3rd card items added",
3,
CipherType.Card,
);
static readonly CardItemCreated5 = new ItemCreatedCountConfig(
"card-item-created-5",
"5th card item added",
5,
CipherType.Card,
);
// Note items
new ItemCreatedCountConfig(
"note-item-created",
"1st card item added",
1,
CipherType.SecureNote,
),
new ItemCreatedCountConfig(
"note-item-created-ten",
"10 card items added",
10,
CipherType.SecureNote,
),
new ItemCreatedCountConfig(
"note-item-created-fifty",
"50 card items added",
50,
CipherType.SecureNote,
),
new ItemCreatedCountConfig(
"note-item-created-one-hundred",
"100 card items added",
100,
CipherType.SecureNote,
),
// Note items
static readonly NoteItemCreated = new ItemCreatedCountConfig(
"note-item-created",
"1st card item added",
1,
CipherType.SecureNote,
);
static readonly NoteItemCreated10 = new ItemCreatedCountConfig(
"note-item-created-ten",
"10 card items added",
10,
CipherType.SecureNote,
);
static readonly NoteItemCreated50 = new ItemCreatedCountConfig(
"note-item-created-fifty",
"50 card items added",
50,
CipherType.SecureNote,
);
static readonly NoteItemCreated100 = new ItemCreatedCountConfig(
"note-item-created-one-hundred",
"100 card items added",
100,
CipherType.SecureNote,
);
// SSH Key - Achievements indicate only one so just set threshold at 1
static readonly SSHKeyItemCreated = new ItemCreatedCountConfig(
"ssh-key-item-created",
"1st SSH Key added",
1,
);
// SSH Key - Achievements indicate only one so just set threshold at 1
new ItemCreatedCountConfig("ssh-key-item-created", "1st SSH Key added", 1),
];
base: Achievement;
get achievement() {

View File

@@ -9,26 +9,12 @@ import { Achievement, AchievementId, MetricId } from "../../types";
*/
export class SendItemCreatedCountConfig implements Achievement {
// Define send count achievements here
static readonly SendItemCreated = new SendItemCreatedCountConfig(
"send-item-created",
"1st send item created",
1,
);
static readonly SendItemCreated10 = new SendItemCreatedCountConfig(
"send-item-created-10",
"10 send items created",
10,
);
static readonly SendItemCreated50 = new SendItemCreatedCountConfig(
"send-item-created-50",
"50 send items created",
50,
);
static readonly SendItemCreated100 = new SendItemCreatedCountConfig(
"send-item-created-100",
"100 send items created",
100,
);
static readonly AllConfigs: SendItemCreatedCountConfig[] = [
new SendItemCreatedCountConfig("send-item-created", "1st send item created", 1),
new SendItemCreatedCountConfig("send-item-created-10", "10 send items created", 10),
new SendItemCreatedCountConfig("send-item-created-50", "50 send items created", 50),
new SendItemCreatedCountConfig("send-item-created-100", "100 send items created", 100),
];
base: Achievement;
get achievement() {

View File

@@ -22,6 +22,10 @@ export class SendItemCreatedCountValidator implements AchievementValidator {
this.sendItemCreatedProgress = config.active.metric;
}
static createValidators(configs: SendItemCreatedCountConfig[]): SendItemCreatedCountValidator[] {
return configs.map((config) => new SendItemCreatedCountValidator(config));
}
base: AchievementValidator;
get achievement() {
return this.config.achievement;

View File

@@ -30,6 +30,10 @@ export class VaultItemCreatedCountValidator implements AchievementValidator {
this.itemCreatedProgress = config.active.metric;
}
static createValidators(configs: ItemCreatedCountConfig[]): AchievementValidator[] {
return configs.map((config) => new VaultItemCreatedCountValidator(config));
}
base: AchievementValidator;
get achievement() {
return this.config.achievement;