feat(desktop): SaaS [4] 온보딩 — Cloud Sync 티저 step + AppConfig 타입 정리 (빅뱅 Phase 2)
AppConfig 정식화: - packages/core types.ts: onboardingCompleted: boolean 추가 - ConfigService CONFIG_DEFAULTS 동기화 - 타입 캐스팅 3곳 제거 (AppLayout/OnboardingModal/SettingsModal) OnboardingModal 6 step 확장: - 기존: 환영 → 마이크 → 핫키 → Ollama → 완료 - 신규: 환영 → 마이크 → 핫키 → Ollama → Cloud Sync(선택) → 완료 - saasMode === true 일 때만 Cloud Sync step 노출 - Step 내용: tagline + 3 benefit (sync/premium LLM/team share) + "설정에서 언제든지 로그인" 안내 - 온보딩 scope 안에서는 로그인 버튼 미노출 — 부담 제로 유지 (Settings의 CloudSyncSection이 유일한 OAuth 진입점) i18n: - ko/en에 onboarding.cloud.* 6개 키 추가 - 나머지 10개 locale은 추후 일괄 (Phase 2 scope 밖) 의도적 제외: - Supabase profiles.onboarded_at — OAuth provider 설정 전까진 의미 없음 - OAuth 후 환영 페이지 — Phase 4 티어 enforcement와 함께 - STT 모델 선택 — sidecar가 자동 다운로드
This commit is contained in:
parent
1a01cea33c
commit
f1321df83c
8 changed files with 130 additions and 13 deletions
|
|
@ -63,14 +63,11 @@ export function AppLayout(): React.ReactElement {
|
|||
const [licenseModalOpen, setLicenseModalOpen] = useState(false)
|
||||
const [currentTier, setCurrentTier] = useState<LicenseTier>('free')
|
||||
|
||||
// 첫 실행 감지
|
||||
// 첫 실행 감지 — 로컬 모드 entry point에서 온보딩 자동 표시
|
||||
useEffect(() => {
|
||||
window.electronAPI.config.getAll().then((r) => {
|
||||
if (r.success) {
|
||||
const cfg = r.data as Record<string, unknown>
|
||||
if (!cfg['onboardingCompleted']) {
|
||||
setOnboardingOpen(true)
|
||||
}
|
||||
if (r.success && !r.data.onboardingCompleted) {
|
||||
setOnboardingOpen(true)
|
||||
}
|
||||
})
|
||||
}, [])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue