fa7d537ef7
Replace donate.stream links with a modal announcing the upcoming campaign on CrowdRepublic, with RU/EN copy and the old buy URL commented out. Co-authored-by: Cursor <cursoragent@cursor.com>
124 lines
3.0 KiB
TypeScript
124 lines
3.0 KiB
TypeScript
export const CROWDFUNDING_URL = "https://crowdrepublic.ru/" as const;
|
|
|
|
export const SITE_LINKS = {
|
|
features: "#features",
|
|
howItWorks: "#how-it-works",
|
|
platforms: "#platforms",
|
|
pricing: "#pricing",
|
|
faq: "#faq",
|
|
download: "#platforms",
|
|
// buy: "https://donate.stream/ttrpgplayer",
|
|
enterKey: "#pricing",
|
|
support: "mailto:player.ttrpg@gmail.com",
|
|
} as const;
|
|
|
|
/** VK Video showcase — https://vkvideo.ru/video-238917656_456239017 */
|
|
export const SHOWCASE_VIDEO = {
|
|
pageUrl: "https://vkvideo.ru/video-238917656_456239017",
|
|
embedUrl: "https://vk.com/video_ext.php?oid=-238917656&id=456239017&hd=2",
|
|
} as const;
|
|
|
|
/** Same feed as electron-builder `publish.url` in dnd_player/package.json */
|
|
export const UPDATE_FEED_BASE = "https://updates.mailib.ru/";
|
|
|
|
/** Fixed artifact names — version lives only in latest*.yml on the server */
|
|
export const DOWNLOAD_ARTIFACTS = {
|
|
windows: "TTRPGPlayer-Setup.exe",
|
|
macos: {
|
|
x64: "TTRPGPlayer-x64.dmg",
|
|
arm64: "TTRPGPlayer-arm64.dmg",
|
|
},
|
|
linux: {
|
|
x64: "TTRPGPlayer-x64.AppImage",
|
|
arm64: "TTRPGPlayer-arm64.AppImage",
|
|
},
|
|
} as const;
|
|
|
|
function artifactUrl(filename: string): string {
|
|
return `${UPDATE_FEED_BASE}${filename}`;
|
|
}
|
|
|
|
export const DOWNLOAD_LINKS = {
|
|
windows: artifactUrl(DOWNLOAD_ARTIFACTS.windows),
|
|
macos: {
|
|
x64: artifactUrl(DOWNLOAD_ARTIFACTS.macos.x64),
|
|
arm64: artifactUrl(DOWNLOAD_ARTIFACTS.macos.arm64),
|
|
},
|
|
linux: {
|
|
x64: artifactUrl(DOWNLOAD_ARTIFACTS.linux.x64),
|
|
arm64: artifactUrl(DOWNLOAD_ARTIFACTS.linux.arm64),
|
|
},
|
|
} as const;
|
|
|
|
export type DownloadLinks = typeof DOWNLOAD_LINKS;
|
|
|
|
export const NAV_LINK_KEYS = [
|
|
"features",
|
|
"howItWorks",
|
|
"platforms",
|
|
"pricing",
|
|
"faq",
|
|
] as const;
|
|
|
|
export type NavLinkKey = (typeof NAV_LINK_KEYS)[number];
|
|
|
|
export const NAV_HREFS: Record<NavLinkKey, string> = {
|
|
features: SITE_LINKS.features,
|
|
howItWorks: SITE_LINKS.howItWorks,
|
|
platforms: SITE_LINKS.platforms,
|
|
pricing: SITE_LINKS.pricing,
|
|
faq: SITE_LINKS.faq,
|
|
};
|
|
|
|
export const AUDIENCE_CARD_IDS = ["gm", "prep", "table"] as const;
|
|
|
|
export const BENEFIT_CARD_IDS = [
|
|
"allInOne",
|
|
"sync",
|
|
"immersion",
|
|
"branching",
|
|
"portable",
|
|
"pro",
|
|
] as const;
|
|
|
|
export const FEATURE_VARIANTS = [
|
|
"editor",
|
|
"control",
|
|
"presentation",
|
|
"atmosphere",
|
|
] as const;
|
|
|
|
export type FeatureVariant = (typeof FEATURE_VARIANTS)[number];
|
|
|
|
export const STEP_IDS = ["create", "launch", "run"] as const;
|
|
|
|
export const PLATFORM_IDS = ["windows", "macos", "linux"] as const;
|
|
|
|
export type PlatformId = (typeof PLATFORM_IDS)[number];
|
|
|
|
export const PRICING_TIER_IDS = ["basic", "master", "legend"] as const;
|
|
|
|
export type PricingTierId = (typeof PRICING_TIER_IDS)[number];
|
|
|
|
export const RECOMMENDED_PRICING_TIER: PricingTierId = "master";
|
|
|
|
export const FAQ_IDS = [
|
|
"what",
|
|
"internet",
|
|
"monitor",
|
|
"activate",
|
|
"os",
|
|
] as const;
|
|
|
|
export type FaqId = (typeof FAQ_IDS)[number];
|
|
|
|
export const HERO_HIGHLIGHT_IDS = ["offline", "secondScreen"] as const;
|
|
|
|
export const REQUIRED_SECTION_IDS = [
|
|
"features",
|
|
"how-it-works",
|
|
"platforms",
|
|
"pricing",
|
|
"faq",
|
|
] as const;
|