fix(portal): preserve skill search during selection - #1416
Cedric Vidal (cedricvidal) merged 4 commits into
Conversation
Keep the active skill query and result list open while users select multiple matching skills. Position the scrollable dropdown within the available viewport space and cover both behaviors with focused tests and a Storybook scenario. Closes microsoft#1284 Signed-off-by: Asad Ali <asad@ztabs.co>
Signed-off-by: Asad Ali <asad@ztabs.co>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Address dropdown clipping, scroll-update performance, Storybook state isolation, and strengthen constrained-height coverage.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (2)
What changed in this PR
Updates the Portal skill picker for persistent multi-selection search and viewport-aware dropdown placement.
Changes:
- Preserves search queries and open results after selection.
- Adds dropdown flipping and height constraints.
- Adds tests, Storybook coverage, and documentation.
| File | Summary |
|---|---|
docs/architecture/skills.md |
Documents picker behavior. |
apps/portal/src/components/SkillPicker.tsx |
Implements persistent search and dynamic dropdown layout. |
apps/portal/src/components/SkillPicker.test.tsx |
Tests selection and dropdown positioning. |
apps/portal/src/components/SkillPicker.stories.tsx |
Adds interactive multi-select coverage. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Signed-off-by: Asad Ali <asad@ztabs.co>
|
Copilot review |
|
Hey Asad Ali (@itsmeasadali), thank you so much for your contribution! Wassim Chegham (@manekinekko) can I let you look at this PR? |
|
Hi Asad Ali (@itsmeasadali) thank you for your contribution. Before we review your changes, can you please review and accept the CLA? |
|
@microsoft-github-policy-service agree |
|
Thank you Asad Ali (@itsmeasadali) ! Much easier to use now! |

Summary
Closes #1284
Demo
skill-picker-search.webm
The focused tests also exercise the near-bottom case, where the scrollable dropdown flips above the input and is constrained to the available viewport height.
Testing
pnpm exec vitest run --config apps/portal/vite.config.ts apps/portal/src/components/SkillPicker.test.tsx apps/portal/src/components/SkillImportWizard.test.tsx— 25 passedpnpm --filter portal lint— passedpnpm --filter portal build— passedpnpm --filter portal build-storybook— passedpnpm headers:check— passedDocumentation and compatibility
docs/architecture/skills.mdwith the multi-select search and viewport behaviorChecklist
up()/down()and keep it CosmosDB-compatible. (N/A)NOTICE/NOTICE-REVIEW.txtwithpnpm noticeas needed. (N/A)