diff --git a/contributions.json b/contributions.json index bc24c8d1a5cb2..a6e6df3b5d94b 100644 --- a/contributions.json +++ b/contributions.json @@ -12658,12 +12658,8 @@ "when": "!gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4" }, { - "contents": "Save 33% or more on your 1st seat of Pro.", - "when": "!gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && (gitlens:promo == pro50 || !gitlens:promo)" - }, - { - "contents": "Get the gift of a better DevEx in 2025! Save up to 80% now", - "when": "!gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == gkholiday" + "contents": "Save 55% or more on your 1st seat of Pro.", + "when": "!gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == pro50" }, { "contents": "Your Pro trial has ended. Please upgrade for full access to Launchpad and other Pro features.", @@ -12765,12 +12761,8 @@ "when": "gitlens:views:scm:grouped:view == launchpad && !gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4" }, { - "contents": "Save 33% or more on your 1st seat of Pro.", - "when": "gitlens:views:scm:grouped:view == launchpad && !gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && (gitlens:promo == pro50 || !gitlens:promo)" - }, - { - "contents": "Get the gift of a better DevEx in 2025! Save up to 80% now", - "when": "gitlens:views:scm:grouped:view == launchpad && !gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == gkholiday" + "contents": "Save 55% or more on your 1st seat of Pro.", + "when": "gitlens:views:scm:grouped:view == launchpad && !gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == pro50" }, { "contents": "Your Pro trial has ended. Please upgrade for full access to Launchpad and other Pro features.", @@ -12817,12 +12809,8 @@ "when": "gitlens:views:scm:grouped:view == worktrees && gitlens:plus:required && gitlens:plus:state == 4" }, { - "contents": "Save 33% or more on your 1st seat of Pro.", - "when": "gitlens:views:scm:grouped:view == worktrees && gitlens:plus:required && gitlens:plus:state == 4 && (gitlens:promo == pro50 || !gitlens:promo)" - }, - { - "contents": "Get the gift of a better DevEx in 2025! Save up to 80% now", - "when": "gitlens:views:scm:grouped:view == worktrees && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == gkholiday" + "contents": "Save 55% or more on your 1st seat of Pro.", + "when": "gitlens:views:scm:grouped:view == worktrees && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == pro50" }, { "contents": "Your Pro trial has ended. Please upgrade for full access to Worktrees and other Pro features.", @@ -12951,12 +12939,8 @@ "when": "gitlens:plus:required && gitlens:plus:state == 4" }, { - "contents": "Save 33% or more on your 1st seat of Pro.", - "when": "gitlens:plus:required && gitlens:plus:state == 4 && (gitlens:promo == pro50 || !gitlens:promo)" - }, - { - "contents": "Get the gift of a better DevEx in 2025! Save up to 80% now", - "when": "gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == gkholiday" + "contents": "Save 55% or more on your 1st seat of Pro.", + "when": "gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == pro50" }, { "contents": "Your Pro trial has ended. Please upgrade for full access to Worktrees and other Pro features.", diff --git a/package.json b/package.json index 088a0f4a1314c..3c6d01cfca59b 100644 --- a/package.json +++ b/package.json @@ -19504,13 +19504,8 @@ }, { "view": "gitlens.views.launchpad", - "contents": "Save 33% or more on your 1st seat of Pro.", - "when": "!gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && (gitlens:promo == pro50 || !gitlens:promo)" - }, - { - "view": "gitlens.views.launchpad", - "contents": "Get the gift of a better DevEx in 2025! Save up to 80% now", - "when": "!gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == gkholiday" + "contents": "Save 55% or more on your 1st seat of Pro.", + "when": "!gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == pro50" }, { "view": "gitlens.views.launchpad", @@ -19564,13 +19559,8 @@ }, { "view": "gitlens.views.scm.grouped", - "contents": "Save 33% or more on your 1st seat of Pro.", - "when": "gitlens:views:scm:grouped:view == launchpad && !gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && (gitlens:promo == pro50 || !gitlens:promo)" - }, - { - "view": "gitlens.views.scm.grouped", - "contents": "Get the gift of a better DevEx in 2025! Save up to 80% now", - "when": "gitlens:views:scm:grouped:view == launchpad && !gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == gkholiday" + "contents": "Save 55% or more on your 1st seat of Pro.", + "when": "gitlens:views:scm:grouped:view == launchpad && !gitlens:launchpad:connect && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == pro50" }, { "view": "gitlens.views.scm.grouped", @@ -19629,13 +19619,8 @@ }, { "view": "gitlens.views.scm.grouped", - "contents": "Save 33% or more on your 1st seat of Pro.", - "when": "gitlens:views:scm:grouped:view == worktrees && gitlens:plus:required && gitlens:plus:state == 4 && (gitlens:promo == pro50 || !gitlens:promo)" - }, - { - "view": "gitlens.views.scm.grouped", - "contents": "Get the gift of a better DevEx in 2025! Save up to 80% now", - "when": "gitlens:views:scm:grouped:view == worktrees && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == gkholiday" + "contents": "Save 55% or more on your 1st seat of Pro.", + "when": "gitlens:views:scm:grouped:view == worktrees && gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == pro50" }, { "view": "gitlens.views.scm.grouped", @@ -19717,13 +19702,8 @@ }, { "view": "gitlens.views.worktrees", - "contents": "Save 33% or more on your 1st seat of Pro.", - "when": "gitlens:plus:required && gitlens:plus:state == 4 && (gitlens:promo == pro50 || !gitlens:promo)" - }, - { - "view": "gitlens.views.worktrees", - "contents": "Get the gift of a better DevEx in 2025! Save up to 80% now", - "when": "gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == gkholiday" + "contents": "Save 55% or more on your 1st seat of Pro.", + "when": "gitlens:plus:required && gitlens:plus:state == 4 && gitlens:promo == pro50" }, { "view": "gitlens.views.worktrees", diff --git a/src/constants.context.ts b/src/constants.context.ts index 56efbb1afef88..ec9da13d46ad8 100644 --- a/src/constants.context.ts +++ b/src/constants.context.ts @@ -1,6 +1,7 @@ import type { Uri } from 'vscode'; import type { AnnotationStatus, Keys } from './constants'; -import type { PromoKeys, SubscriptionPlanId, SubscriptionState } from './constants.subscription'; +import type { PromoKeys } from './constants.promos'; +import type { SubscriptionPlanId, SubscriptionState } from './constants.subscription'; import type { CustomEditorTypes, GroupableTreeViewTypes, WebviewTypes, WebviewViewTypes } from './constants.views'; import type { WalkthroughContextKeys } from './telemetry/walkthroughStateProvider'; diff --git a/src/constants.promos.ts b/src/constants.promos.ts new file mode 100644 index 0000000000000..32e7c64971f0b --- /dev/null +++ b/src/constants.promos.ts @@ -0,0 +1,24 @@ +import { SubscriptionState } from './constants.subscription'; +import type { Promo } from './plus/gk/models/promo'; + +export type PromoKeys = 'pro50'; + +// Must be ordered by applicable order +export const promos: Promo[] = [ + { + key: 'pro50', + states: [ + SubscriptionState.Community, + SubscriptionState.ProPreview, + SubscriptionState.ProPreviewExpired, + SubscriptionState.ProTrial, + SubscriptionState.ProTrialExpired, + SubscriptionState.ProTrialReactivationEligible, + ], + command: { tooltip: 'Save 55% or more on your 1st seat of Pro.' }, + locations: ['account', 'badge', 'gate'], + quickpick: { + detail: '$(star-full) Save 55% or more on your 1st seat of Pro', + }, + }, +]; diff --git a/src/constants.subscription.ts b/src/constants.subscription.ts index 1a531872f2e61..255cae89af326 100644 --- a/src/constants.subscription.ts +++ b/src/constants.subscription.ts @@ -3,8 +3,6 @@ export const proFeaturePreviewUsageDurationInDays = 1; export const proPreviewLengthInDays = 0; export const proTrialLengthInDays = 14; -export type PromoKeys = 'gkholiday' | 'pro50'; - export const enum SubscriptionPlanId { Community = 'community', CommunityWithAccount = 'community-with-account', diff --git a/src/plus/gk/models/promo.ts b/src/plus/gk/models/promo.ts index ccc0f3e76ecf2..32d3ed68b7414 100644 --- a/src/plus/gk/models/promo.ts +++ b/src/plus/gk/models/promo.ts @@ -1,4 +1,5 @@ -import type { PromoKeys, SubscriptionState } from '../../../constants.subscription'; +import type { PromoKeys } from '../../../constants.promos'; +import type { SubscriptionState } from '../../../constants.subscription'; export type PromoLocation = 'account' | 'badge' | 'gate' | 'home'; diff --git a/src/plus/gk/utils/promo.utils.ts b/src/plus/gk/utils/promo.utils.ts index d521ec9597ed5..af63d01d8c601 100644 --- a/src/plus/gk/utils/promo.utils.ts +++ b/src/plus/gk/utils/promo.utils.ts @@ -1,45 +1,7 @@ -import type { PromoKeys } from '../../../constants.subscription'; -import { SubscriptionState } from '../../../constants.subscription'; +import type { PromoKeys } from '../../../constants.promos'; +import { promos } from '../../../constants.promos'; import type { Promo, PromoLocation } from '../models/promo'; -// Must be ordered by applicable order -const promos: Promo[] = [ - { - key: 'gkholiday', - code: 'GKHOLIDAY', - states: [ - SubscriptionState.Community, - SubscriptionState.ProPreview, - SubscriptionState.ProPreviewExpired, - SubscriptionState.ProTrial, - SubscriptionState.ProTrialExpired, - SubscriptionState.ProTrialReactivationEligible, - ], - startsOn: new Date('2024-12-09T06:59:00.000Z').getTime(), - expiresOn: new Date('2025-01-07T06:59:00.000Z').getTime(), - command: { tooltip: 'Get the gift of a better DevEx in 2025! Save up to 80% now' }, - quickpick: { - detail: '$(star-full) Get the gift of a better DevEx in 2025! Save up to 80% now', - }, - }, - { - key: 'pro50', - states: [ - SubscriptionState.Community, - SubscriptionState.ProPreview, - SubscriptionState.ProPreviewExpired, - SubscriptionState.ProTrial, - SubscriptionState.ProTrialExpired, - SubscriptionState.ProTrialReactivationEligible, - ], - command: { tooltip: 'Save 33% or more on your 1st seat of Pro.' }, - locations: ['account', 'badge', 'gate'], - quickpick: { - detail: '$(star-full) Save 33% or more on your 1st seat of Pro', - }, - }, -]; - export function getApplicablePromo( state: number | undefined, location?: PromoLocation, diff --git a/src/webviews/apps/shared/components/promo.ts b/src/webviews/apps/shared/components/promo.ts index b0414a09c7bd2..3747346a32114 100644 --- a/src/webviews/apps/shared/components/promo.ts +++ b/src/webviews/apps/shared/components/promo.ts @@ -79,14 +79,9 @@ export class GlPromo extends LitElement { private renderPromo(promo: Promo) { switch (promo.key) { - case 'gkholiday': - return html`Get the gift of a better DevEx in 2025! Save up to 80% now`; - case 'pro50': return html`Save 33% or more on your 1st seat of ProSave 55% or more on your 1st seat of Pro`; default: {