feat: add onboarding page with guided setup flow#13774
Merged
kangfenmao merged 20 commits intomainfrom Mar 25, 2026
Merged
Conversation
bcdb51a to
37b0130
Compare
Collaborator
Author
|
If you need to test it, you need to delete the onboarding-completed key in localStorage. |
…viderList to exclude specific providers
…y to model selection
…port - Rearranged the component hierarchy in App.tsx for better context management. - Updated GeneralPopup to use styled-components for custom modal styling. - Added new translations for landing page elements in English, Chinese, German, Greek, Spanish, French, Japanese, Portuguese, Romanian, and Russian. - Refactored ProviderPopup to utilize i18n for title localization. - Simplified SelectModelPage by integrating ModelSettings and enhancing translation support. - Updated SkipButton to use i18n for the skip text. - Enhanced WelcomePage to include i18n for various text elements. - Modified ModelSettings to accept props for conditional rendering of settings buttons and descriptions.
…omponents - Removed LandingContext and its associated provider and hooks. - Introduced OnboardingContext with similar functionality for onboarding steps. - Created OnboardingPage and its components (WelcomePage, SelectModelPage, SkipButton, ProviderPopup) to handle onboarding flow. - Updated i18n translations to reflect the change from landing to onboarding. - Deleted LandingPage and added routing for OnboardingPage.
…n ProviderSetting component
cc379c8 to
86a6589
Compare
Collaborator
EurFelux
reviewed
Mar 25, 2026
Collaborator
There was a problem hiding this comment.
Note
This review was translated by Claude.
Overall a nice PR! The architecture is reasonable, reusing existing components. Found one hardcoded English string that needs to go through i18n.
Original Content
整体不错的 PR!架构合理,复用了现有组件。发现一个硬编码英文字符串需要走 i18n。
EurFelux
reviewed
Mar 25, 2026
EurFelux
approved these changes
Mar 25, 2026
Collaborator
There was a problem hiding this comment.
Note
This issue/comment/review was translated by Claude.
LGTM. All previously raised issues have been fixed: i18n hardcoding, SkipButton z-index, Context simplified to hook+props. The new useProvider.addModel refactoring is also very reasonable.
Original Content
LGTM. 之前提出的问题都已修复:i18n 硬编码、SkipButton z-index、Context 简化为 hook+props。新增的 useProvider.addModel 重构也很合理。
DeJeune
approved these changes
Mar 25, 2026
MyPrototypeWhat
pushed a commit
that referenced
this pull request
Mar 30, 2026
### What this PR does Before this PR: - New users had no guided onboarding experience - Users had to manually navigate to settings to configure providers and models After this PR: - Adds an onboarding page with guided setup flow for new users - Supports CherryIN OAuth login with automatic model fetching and configuration - Allows users to select other providers via a popup dialog - Provides a model selection step to configure default, quick, and translation models - Includes skip functionality for users who want to configure later ### Why we need it and why it was done in this way The following tradeoffs were made: - Reused existing `ModelSettings` component with new `compact`, `showSettingsButton`, `showDescription` props to avoid code duplication - Used `OnboardingContext` to manage onboarding state across components The following alternatives were considered: - Creating separate model selection components for onboarding page (rejected to maintain consistency with settings page) ### Breaking changes None ### Special notes for your reviewer - The onboarding flow: Welcome → (CherryIN Login or Select Provider) → Model Selection → Main App - CherryIN OAuth automatically fetches and adds available models after successful login - Renamed from `landing` to `onboarding` for clearer naming convention ### Checklist - [x] PR: The PR description is expressive enough and will help future contributors - [x] Code: Write code that humans can understand and Keep it simple - [x] Refactor: You have left the code cleaner than you found it (Boy Scout Rule) - [ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required - [x] Documentation: A user-guide update was considered and is present (link) or not required - [x] Self-review: I have reviewed my own code before requesting review from others ### Release note ```release-note feat: Add onboarding page with guided setup flow for new users, supporting CherryIN OAuth login with automatic model configuration ```
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

What this PR does
Before this PR:
After this PR:
Why we need it and why it was done in this way
The following tradeoffs were made:
ModelSettingscomponent with newcompact,showSettingsButton,showDescriptionprops to avoid code duplicationOnboardingContextto manage onboarding state across componentsThe following alternatives were considered:
Breaking changes
None
Special notes for your reviewer
landingtoonboardingfor clearer naming conventionChecklist
Release note
```release-note
feat: Add onboarding page with guided setup flow for new users, supporting CherryIN OAuth login with automatic model configuration
```