Files
Jyotisha/frontend/src/components/starter-questions.tsx
T
jesse-uxandGrok (agent loop) e4e240bf86
Independent Staging Quality Gate / validate (push) Failing after 9m8s
Independent Staging Quality Gate / publish (push) Skipped
启程第一次出现时会动一下(#99)。
建档、起步问题、清单打勾、天空过场和合盘按 T7 播放一次。减少动态效果时只剩淡入,没有星点和闪烁。Motion 仍按需加载,首屏 gzip 631199,相对 627046 约 +0.66%。

自测:tsc --noEmit、npm run lint(0 error)、定向测试 58 项 fail 0、npm run build(/ 仍 Static)。

Co-Authored-By: Grok (agent loop)
2026-10-25 02:17:32 +08:00

39 lines
1.6 KiB
TypeScript

"use client";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
STARTER_FREE_BADGE,
starterLead,
starterQuestions,
starterWatching,
type StarterAudience,
type StarterChartSigns,
} from "@/lib/starter-questions";
export function StarterQuestions({
audience,
signs,
onAsk,
onNudge,
}: {
readonly audience: StarterAudience;
readonly signs: StarterChartSigns;
readonly onAsk: (question: string) => void;
readonly onNudge: () => void;
}) {
const questions = starterQuestions(audience, signs);
return (
<div className="starter-questions">
<p className="starter-questions-lead">{starterLead(audience)}</p>
{audience.kind === "other" ? <Badge variant="outline">{starterWatching(audience)}</Badge> : null}
<span data-onboarding-pop="free-once"><Badge variant="secondary">{STARTER_FREE_BADGE}</Badge></span>
<div className="starter-questions-list">
<Button type="button" variant="outline" data-onboarding-press="" data-onboarding-enter="starter-0" data-onboarding-index={0} data-onboarding-follow-source="" onClick={() => onAsk(questions[0])}>{questions[0]}</Button>
<Button type="button" variant="outline" data-onboarding-press="" data-onboarding-enter="starter-1" data-onboarding-index={1} data-onboarding-follow-source="" onClick={() => onAsk(questions[1])}>{questions[1]}</Button>
<Button type="button" variant="outline" data-onboarding-press="" data-onboarding-enter="starter-2" data-onboarding-index={2} onClick={onNudge}>{questions[2]}</Button>
</div>
</div>
);
}