From e56451e0270c8cb2ab003d4d734f9f63d1d13476 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 4 Mar 2026 01:43:34 +0530 Subject: [PATCH] chore: Update coupon code --- .../migration/EditorChooserModal.svelte | 14 ++++---------- .../{NewYear2026.svelte => JS2026.svelte} | 16 ++++------------ src/lib/util/promos/promo.ts | 8 ++++---- src/lib/util/util.ts | 17 +++++++++++++++++ 4 files changed, 29 insertions(+), 26 deletions(-) rename src/lib/util/promos/{NewYear2026.svelte => JS2026.svelte} (60%) diff --git a/src/lib/components/migration/EditorChooserModal.svelte b/src/lib/components/migration/EditorChooserModal.svelte index 5532dcca..05dadf62 100644 --- a/src/lib/components/migration/EditorChooserModal.svelte +++ b/src/lib/components/migration/EditorChooserModal.svelte @@ -1,8 +1,9 @@ diff --git a/src/lib/util/promos/promo.ts b/src/lib/util/promos/promo.ts index 3656162d..6af7b2e6 100644 --- a/src/lib/util/promos/promo.ts +++ b/src/lib/util/promos/promo.ts @@ -5,7 +5,7 @@ import type { Component } from 'svelte'; import { get, writable, type Writable } from 'svelte/store'; import { localStorage, persist } from '../persist'; import April2025 from './April2025.svelte'; -import NewYear2026 from './NewYear2026.svelte'; +import JS2026 from './JS2026.svelte'; dayjs.extend(duration); @@ -17,10 +17,10 @@ interface Promotion { } const promotions: Record = { - 'promo-newyear-2026': { + 'promo-js-2026': { startDate: new Date('2026-01-01'), - endDate: new Date('2026-03-14'), - component: NewYear2026, + endDate: new Date('2026-12-31'), + component: JS2026, hideDurationMs: dayjs.duration(1, 'week').asMilliseconds() }, 'promo-april-2025': { diff --git a/src/lib/util/util.ts b/src/lib/util/util.ts index fc0d071a..c252f370 100644 --- a/src/lib/util/util.ts +++ b/src/lib/util/util.ts @@ -40,6 +40,23 @@ export const MCBaseURL = env.isEnabledMermaidChartLinks ? 'https://mermaid.ai' // 'http://localhost:5174' : 'https://example.com'; +export const getCheckoutUrl = ({ + utmCampaign, + utmMedium +}: { + utmCampaign: string; + utmMedium: string; +}): string => { + const params = new URLSearchParams({ + coupon: 'arDfyFT8', + tier: 'plus', + utm_campaign: utmCampaign, + utm_medium: utmMedium, + utm_source: getUTMSource() + }); + return `${MCBaseURL}/app/user/billing/checkout?${params.toString()}`; +}; + let count = 0; export const errorDebug = (limit = 1000) => { count += 1;