Skip to content

feat(onboarding): Section the SCM platform picker into Popular and Other - #122104

Draft
jaydgoss wants to merge 4 commits into
jaygoss/scm-virtualized-menu-groupsfrom
jaygoss/scm-platform-picker-sections
Draft

feat(onboarding): Section the SCM platform picker into Popular and Other#122104
jaydgoss wants to merge 4 commits into
jaygoss/scm-virtualized-menu-groupsfrom
jaygoss/scm-platform-picker-sections

Conversation

@jaydgoss

@jaydgoss jaydgoss commented Aug 14, 2026

Copy link
Copy Markdown
Member

TLDR

The SCM create-project SDK dropdown is now split into two labeled sections: the curated Popular list first, in the same order as the legacy Popular tab, then every other platform ordered like the legacy picker's All tab.

Details

A popularity-first flat sort reads as random without a visible boundary, so the split is made explicit with react-select option groups, which the core Select already styles (headings, section dividers) and the previous PR taught ScmVirtualizedMenuList to render. platformOptionGroups reuses popularPlatformCategories and comparePlatformNames rather than inventing a new ranking source, and each platform appears in exactly one section, so search and keyboard navigation see no duplicates. react-select drops a section while filtering once it has no matches. The stock headings sit flush with the row edge while options reserve a leading checkmark column, so the picker overrides the heading padding to line heading text up with the platform icons.

When the framework-suggestion modal commits a key outside the static list, it is prepended as an unlabeled group; the Select's groupHeading style hides empty headings, so it renders as a bare option at the top, matching the previous behavior.

Stack

  • PR 1: fix(onboarding): Sort SCM platform picker alphabetically
  • PR 2: feat(onboarding): Support grouped options in ScmVirtualizedMenuList
  • PR 3 (this): feat(onboarding): Section the SCM platform picker into Popular and Other

Replace the flat alphabetical SCM dropdown with two labeled sections: the existing curated Popular list first (same order as the legacy Popular tab), then every other platform A-Z. The Select already supports react-select grouped options and styles the section headings; the virtualized menu list gained group support in the previous PR.
Section headings padded only to the row edge, so option content sat visibly indented under them because every option reserves a leading 1em checkmark column. Indent the headings by that column plus the leading-items gap so heading text lines up with the platform icons.
…shorthand

The groupHeading base styles already contain a paddingLeft key from react-select's defaults, so overriding paddingLeft kept that key's early position and the later padding shorthand reset it. Override the padding shorthand instead.
The Other-section sort assertion reuses comparePlatformNames in its own expectation, so a regression to plain localeCompare would fail nothing. Assert directly that the .NET family sorts last so the distinguishing rule stays pinned.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant