Skip to content

Commit d055c1a

Browse files
authored
feat(web): add Seedance 2.0 promo banner and modal flow (#749)
* feat(web): add Seedance 2.0 promo banner and modal flow Add a dismiss-once promo banner on Home (both idle and active states) and a two-step modal: GitHub Star → join Feishu group to apply for a Seedance 2.0 experience Key. Visual style aligned with the prototype in refly-ai/agent-digital-cowork PR #119 and #120. * fix(web): update Seedance tutorial URL to docs.nexu.io * fix(web): resolve biome a11y lint errors in seedance promo
1 parent 58d485e commit d055c1a

6 files changed

Lines changed: 585 additions & 1 deletion

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { describe, expect, it } from "vitest";
2+
import { getSeedancePromoCountdown } from "./seedance-promo";
3+
4+
describe("getSeedancePromoCountdown", () => {
5+
it("starts each cycle at two days remaining", () => {
6+
const cycleStart = new Date("2026-04-01T00:00:00+08:00");
7+
const now = cycleStart.getTime();
8+
9+
expect(getSeedancePromoCountdown(now, cycleStart)).toMatchObject({
10+
days: 1,
11+
hours: 23,
12+
minutes: 59,
13+
});
14+
});
15+
16+
it("loops back after two days", () => {
17+
const cycleStart = new Date("2026-04-01T00:00:00+08:00");
18+
const now = new Date("2026-04-03T01:30:00+08:00").getTime();
19+
20+
expect(getSeedancePromoCountdown(now, cycleStart)).toMatchObject({
21+
days: 1,
22+
hours: 22,
23+
minutes: 30,
24+
});
25+
});
26+
});

0 commit comments

Comments
 (0)