[P1/高] OnboardingWizard 5 步引导用户中途退出未保存进度,需重新填写 #48

Open
opened 2026-07-21 21:56:13 +08:00 by thzxx · 0 comments
Owner

问题类型

缺陷 / 高 / 前端组件

文件位置

src/components/onboarding/OnboardingWizard.tsx

问题描述

OnboardingWizard 5 步引导:

  1. 欢迎页
  2. 选择 LLM Provider
  3. 配置 API Key / Base URL / Model
  4. 配置 context window
  5. 完成

用户中途退出(关闭窗口、刷新、点击返回):

  • 已填写的配置丢失
  • 下次启动需从头开始
  • 用户体验差

影响

  • 用户中途退出后需要重新填写
  • 转化率降低

建议修复

  1. 持久化进度:每步完成后保存到 localStorage
useEffect(() => {
  localStorage.setItem('onboarding_progress', JSON.stringify({
    step: currentStep,
    config: partialConfig,
  }));
}, [currentStep, partialConfig]);
  1. 恢复进度:启动时检查
const saved = localStorage.getItem('onboarding_progress');
if (saved) {
  const progress = JSON.parse(saved);
  setCurrentStep(progress.step);
  setPartialConfig(progress.config);
}
  1. 完成时清理:onboarding 完成后删除 localStorage
  2. 退出确认:用户中途退出时提示保存
## 问题类型 缺陷 / 高 / 前端组件 ## 文件位置 `src/components/onboarding/OnboardingWizard.tsx` ## 问题描述 OnboardingWizard 5 步引导: 1. 欢迎页 2. 选择 LLM Provider 3. 配置 API Key / Base URL / Model 4. 配置 context window 5. 完成 用户中途退出(关闭窗口、刷新、点击返回): - 已填写的配置丢失 - 下次启动需从头开始 - 用户体验差 ## 影响 - 用户中途退出后需要重新填写 - 转化率降低 ## 建议修复 1. **持久化进度**:每步完成后保存到 localStorage ```ts useEffect(() => { localStorage.setItem('onboarding_progress', JSON.stringify({ step: currentStep, config: partialConfig, })); }, [currentStep, partialConfig]); ``` 2. **恢复进度**:启动时检查 ```ts const saved = localStorage.getItem('onboarding_progress'); if (saved) { const progress = JSON.parse(saved); setCurrentStep(progress.step); setPartialConfig(progress.config); } ``` 3. **完成时清理**:onboarding 完成后删除 localStorage 4. **退出确认**:用户中途退出时提示保存
thzxx added the ??????? labels 2026-07-21 21:56:13 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MetonaTeam/metona-ai-desktop#48