v0.2.0:36 — Launch-special remaining: "N remaining", drop the total
Buy-page tier card's "Limited: N of M remaining" line now reads just "Limited: N remaining". The total cap (M) is operator-private — there's no upside to exposing initial launch volume to buyers, and it can make a tier feel smaller than the operator intends. Symmetric landing-page change (index.html dynamic tier-card JS) ships alongside in a separate commit on the keysat-xyz-landing repo. Cosmetic; no API or schema change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1166,7 +1166,7 @@ fn render_tier_picker(
|
||||
// the launch-meta div as an in-flow element — that coupling
|
||||
// made cross-card row alignment impossible).
|
||||
// - featured_ribbon: absolutely-positioned diagonal banner
|
||||
// - launch_meta_html: in-flow "Limited: X of Y remaining"
|
||||
// - launch_meta_html: in-flow "Limited: N remaining"
|
||||
// - original_price_html: in-flow struck-through original
|
||||
let (featured_ribbon, launch_meta_html, original_price_html) = if let Some(code) = featured {
|
||||
let tagline = if code.kind == "percent" {
|
||||
@@ -1179,11 +1179,13 @@ fn render_tier_picker(
|
||||
"LAUNCH SPECIAL".to_string()
|
||||
};
|
||||
let remaining = code.max_uses.map(|m| (m - code.used_count).max(0)).unwrap_or(-1);
|
||||
// Display: "Limited: N remaining" (not "N of M remaining").
|
||||
// The total cap is operator-private — buyers don't need to
|
||||
// infer launch volume from the M.
|
||||
let launch_meta = if remaining > 0 {
|
||||
format!(
|
||||
"<div class=\"tier-launch-meta\">Limited: {} of {} remaining</div>",
|
||||
"<div class=\"tier-launch-meta\">Limited: {} remaining</div>",
|
||||
remaining,
|
||||
code.max_uses.unwrap_or(0)
|
||||
)
|
||||
} else {
|
||||
String::new()
|
||||
|
||||
Reference in New Issue
Block a user