Skip to content

feat(react-list): export useListContextValues_unstable and ListContextValues#36054

Draft
dmytrokirpa wants to merge 2 commits intomicrosoft:masterfrom
dmytrokirpa:feat/list-base-hooks
Draft

feat(react-list): export useListContextValues_unstable and ListContextValues#36054
dmytrokirpa wants to merge 2 commits intomicrosoft:masterfrom
dmytrokirpa:feat/list-base-hooks

Conversation

@dmytrokirpa
Copy link
Copy Markdown
Contributor

Summary

Adds two missing public exports from @fluentui/react-list required by the headless layer:

  • useListContextValues_unstable — composes ListContextValues from ListState
  • ListContextValues type (re-exported alongside the hook)

Updates etc/react-list.api.md.

Stack order (review in this order)

  1. test(react-list): hook unit tests + bug fix (test(react-list): add unit tests for useList_unstable and useListItem_unstable; fix as-prop operator precedence #36053)
  2. This PR — base hook exports ← you are here
  3. feat(react-headless-components-preview): headless List and ListItem components

Test plan

  • New symbols appear in etc/react-list.api.md after api-extractor runs
  • Existing consumers unaffected (additive-only change)

🤖 Generated with Claude Code

dmytrokirpa and others added 2 commits April 26, 2026 19:43
…_unstable; fix operator precedence in as prop

Tests cover default state, selection modes, navigation modes, and the
composite-mode as-prop branching. The as-prop fix corrects a precedence
bug where `props.as || navigationMode === 'composite' ? 'div' : ...`
was evaluated as `(props.as || navigationMode === 'composite') ? ...`.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tValues

Required for the headless layer to compose context values without importing
internal module paths.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Pull request demo site: URL

@@ -0,0 +1,7 @@
{
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🕵🏾‍♀️ visual changes to review in the Visual Change Report

vr-tests-react-components/CalendarCompat 4 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/CalendarCompat.multiDayView.default.chromium_1.png 654 Changed
vr-tests-react-components/CalendarCompat.multiDayView - Dark Mode.default.chromium.png 2172 Changed
vr-tests-react-components/CalendarCompat.multiDayView - RTL.default.chromium.png 654 Changed
vr-tests-react-components/CalendarCompat.multiDayView - High Contrast.default.chromium.png 2243 Changed
vr-tests-react-components/Charts-DonutChart 3 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Charts-DonutChart.Dynamic - Dark Mode.default.chromium.png 7530 Changed
vr-tests-react-components/Charts-DonutChart.Dynamic - RTL.default.chromium.png 5570 Changed
vr-tests-react-components/Charts-DonutChart.Dynamic.default.chromium.png 5581 Changed
vr-tests-react-components/Positioning 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Positioning.Positioning end.chromium.png 899 Changed
vr-tests-react-components/Positioning.Positioning end.updated 2 times.chromium.png 753 Changed
vr-tests-react-components/ProgressBar converged 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - Dark Mode.default.chromium.png 59 Changed
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness.default.chromium.png 40 Changed
vr-tests-react-components/Skeleton converged 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Skeleton converged.Opaque Skeleton with circle - Dark Mode.default.chromium.png 1 Changed
vr-tests-react-components/TagPicker 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/TagPicker.disabled - Dark Mode.disabled input hover.chromium.png 658 Changed
vr-tests-react-components/TagPicker.disabled - RTL.chromium.png 635 Changed

There were 3 duplicate changes discarded. Check the build logs for more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant