feat(app): weekly review return handoff 연결
This commit is contained in:
@@ -68,6 +68,8 @@ export interface WeeklyReviewSection {
|
||||
note?: string;
|
||||
}
|
||||
|
||||
export type ReviewCarryHint = 'smaller' | 'closure' | 'start' | 'steady';
|
||||
|
||||
export interface WeeklyReviewViewModel {
|
||||
periodLabel: string;
|
||||
snapshotTitle: string;
|
||||
@@ -77,6 +79,7 @@ export interface WeeklyReviewViewModel {
|
||||
recoveryQuality: WeeklyReviewSection;
|
||||
completionQuality: WeeklyReviewSection;
|
||||
carryForward: {
|
||||
hintKey: ReviewCarryHint;
|
||||
keepDoing: string;
|
||||
tryNext: string;
|
||||
ctaLabel: string;
|
||||
@@ -151,21 +154,32 @@ const buildCarryForward = (summary: FocusStatsSummary): WeeklyReviewViewModel['c
|
||||
? copy.stats.reviewCarryKeep(summary.last7Days.bestDayLabel)
|
||||
: copy.stats.reviewCarryKeepGeneric;
|
||||
|
||||
let hintKey: ReviewCarryHint = 'steady';
|
||||
let tryNext: string = copy.stats.reviewCarryTryDefault;
|
||||
|
||||
if (summary.last7Days.carriedOverCount >= 2) {
|
||||
hintKey = 'smaller';
|
||||
tryNext = copy.stats.reviewCarryTrySmaller;
|
||||
} else if (completionRate < 0.45) {
|
||||
hintKey = 'closure';
|
||||
tryNext = copy.stats.reviewCarryTryClosure;
|
||||
} else if (summary.last7Days.startedSessions <= 3) {
|
||||
hintKey = 'start';
|
||||
tryNext = copy.stats.reviewCarryTryStart;
|
||||
}
|
||||
|
||||
const params = new URLSearchParams({
|
||||
review: 'weekly',
|
||||
carryHint: hintKey,
|
||||
entryPreset: 'forest-50-10',
|
||||
});
|
||||
|
||||
return {
|
||||
hintKey,
|
||||
keepDoing,
|
||||
tryNext,
|
||||
ctaLabel: copy.stats.reviewCarryCta,
|
||||
ctaHref: '/app',
|
||||
ctaHref: `/app?${params.toString()}`,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user