Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
14dbae0
initial commit
broccolinisoup Oct 14, 2024
245a841
Revert "Revert "Select panel loading states (#4929)" (#5136)"
broccolinisoup Oct 17, 2024
2bf2821
Merge branch 'revert-5136-revert-4929-select_panel_loading_states' in…
broccolinisoup Oct 17, 2024
654de86
Both internally and externally managed logic
broccolinisoup Oct 17, 2024
af26d78
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
broccolinisoup Oct 21, 2024
e2336ea
do not display error if it is on empty state - I am not sure about th…
broccolinisoup Oct 21, 2024
49c7005
Use published primer/behaviors
camertron Oct 21, 2024
3f33d6e
Merge upstream
camertron Oct 21, 2024
d80d5f1
Merge upstream again
camertron Oct 21, 2024
2bed50b
Revert snapshot change to TextInput
camertron Oct 21, 2024
121718b
Huh ok never mind
camertron Oct 21, 2024
1906413
Use role in test
camertron Oct 21, 2024
97d367d
return variants based on priority order
broccolinisoup Oct 22, 2024
b0a2d0e
add default messages
broccolinisoup Oct 22, 2024
f0b8e3c
delete eslint cache
broccolinisoup Oct 22, 2024
cc2fa9a
Prevent active descendant from resetting when items change
camertron Oct 22, 2024
20228a1
Clean up and add tests
broccolinisoup Oct 23, 2024
bcba97d
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
broccolinisoup Oct 24, 2024
26cc0a1
Merge branch 'revert-5136-revert-4929-select_panel_loading_states' in…
broccolinisoup Oct 24, 2024
af2a4b1
update stories and add a comment
broccolinisoup Oct 24, 2024
ee94d5c
Create new-mangos-fold.md
broccolinisoup Oct 24, 2024
b2e6d65
Allow loading state to be managed by the user
camertron Oct 25, 2024
1d47771
Merge branch 'revert-5136-revert-4929-select_panel_loading_states' of…
camertron Oct 25, 2024
1898b28
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
camertron Oct 25, 2024
15d81f5
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
broccolinisoup Nov 7, 2024
543ff54
Encounter the loading state for the initial state announcement
broccolinisoup Nov 8, 2024
9a4a628
Merge upstream changes
camertron Nov 25, 2024
549d98b
It's working
camertron Dec 9, 2024
6f0d035
Cleanup
camertron Dec 9, 2024
f31f3fa
Merge main
camertron Dec 9, 2024
b1457cd
Merge upstream changes
camertron Dec 9, 2024
a00e399
Merging upstream
camertron Jan 21, 2025
0f6b5dd
Fix linting issues
camertron Jan 21, 2025
36ca499
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
camertron Jan 21, 2025
ca34373
Revert snapshots
camertron Jan 21, 2025
1ddf03e
Merge branch 'revert-5136-revert-4929-select_panel_loading_states' of…
camertron Jan 21, 2025
30c1134
test(vrt): update snapshots
francinelucca Jan 21, 2025
da05622
Backport #5551 to this PR
camertron Jan 21, 2025
9b14f3e
Merge branch 'revert-5136-revert-4929-select_panel_loading_states' of…
camertron Jan 21, 2025
3c8826b
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
francinelucca Jan 22, 2025
74765d0
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
camertron Jan 22, 2025
b1773dc
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
camertron Jan 22, 2025
30cd041
Fix auto-focus behavior
camertron Jan 23, 2025
e409c49
Merge upstream changes
camertron Jan 23, 2025
4b1ac99
Add test to ensure focus behavior
camertron Jan 23, 2025
8b41ec0
Merge branch 'main' into revert-5136-revert-4929-select_panel_loading…
camertron Jan 27, 2025
97b50ba
Allow consumers to pass an inputRef; DRY up timeout cleanup; simplify…
camertron Jan 27, 2025
0cd6dbd
DRY up announcement code; restore useAnnouncements hook for non-Selec…
camertron Jan 27, 2025
986dd49
Fix types tests
camertron Jan 27, 2025
d49d955
Remove testing ID
camertron Jan 27, 2025
7215b43
Merge upstream
camertron Jan 28, 2025
e2b8446
Remove confusing componentManagesLoading control in async story
camertron Jan 28, 2025
e91e434
Merge upstream changes
camertron Jan 29, 2025
e890eb5
Merging upstream changes
camertron Jan 31, 2025
d367d96
Merge branch 'main' of github.com:primer/react into select-panel-empt…
francinelucca Mar 6, 2025
2d4c81b
minor tweaks
francinelucca Mar 6, 2025
8a0d362
remove sx usage
francinelucca Mar 6, 2025
2e7a35f
css fixes
francinelucca Mar 6, 2025
46ba4c5
format
francinelucca Mar 6, 2025
3e3478a
fix type errors
francinelucca Mar 6, 2025
d8c3d66
remove unnecessary css rule override
francinelucca Mar 6, 2025
f8cba5d
css fix
francinelucca Mar 6, 2025
1f29357
format
francinelucca Mar 6, 2025
46a150a
lint fix
francinelucca Mar 6, 2025
3d768e6
document new SelectPanel.Message subcomponent
francinelucca Mar 6, 2025
7e19c26
fix(SelectPanel): rename no-results variant
francinelucca Mar 13, 2025
fe9c4db
fix(SelectPanel): messages refactor
francinelucca Mar 13, 2025
8a1ff82
Update packages/react/src/SelectPanel/SelectPanel.module.css
francinelucca Mar 13, 2025
5b2f4fe
fix(SelectPanel): styling fixes
francinelucca Mar 13, 2025
14d0f6c
Merge branch 'select-panel-empty-state' of github.com:primer/react in…
francinelucca Mar 13, 2025
e012b26
Merge branch 'main' into select-panel-empty-state
francinelucca Mar 13, 2025
df0b2c7
chore(SelectPanel): remove circular dependency
francinelucca Mar 13, 2025
0674475
Merge branch 'select-panel-empty-state' of github.com:primer/react in…
francinelucca Mar 13, 2025
5e6674d
aat fix
francinelucca Mar 13, 2025
310ea1d
fix: remove extra space
francinelucca Mar 13, 2025
d6cddfe
Merge branch 'main' into select-panel-empty-state
francinelucca Mar 14, 2025
7c9a00b
Merge branch 'main' into select-panel-empty-state
francinelucca Mar 17, 2025
4c771a3
fix(SelectPanel): empty state refactor
francinelucca Mar 18, 2025
63330fa
Merge branch 'main' into select-panel-empty-state
francinelucca Mar 18, 2025
c6fc0eb
fix(SelectPanel): remove outdated tests
francinelucca Mar 18, 2025
f290156
fix: remove unused variable
francinelucca Mar 18, 2025
272b0d5
fix typo
francinelucca Mar 18, 2025
cbfdb35
test(vrt): update snapshots
francinelucca Mar 18, 2025
743e88f
fix(SelectPanel): re-add default empty messages tests
francinelucca Mar 18, 2025
b456833
Merge branch 'select-panel-empty-state' of github.com:primer/react in…
francinelucca Mar 18, 2025
2a18aa3
story fix
francinelucca Mar 19, 2025
29e4477
update SelectPanel.docs.json
francinelucca Mar 19, 2025
f1a5ec3
revert story changes
francinelucca Mar 19, 2025
ebc0939
update SelectPanel.docs.json
francinelucca Mar 19, 2025
8a6c703
correct selection announcement
francinelucca Mar 19, 2025
4ddba4a
Update packages/react/src/FilteredActionList/FilteredActionListWithMo…
francinelucca Mar 20, 2025
1a36119
Update packages/react/src/SelectPanel/SelectPanel.dev.stories.tsx
francinelucca Mar 20, 2025
498632b
Update packages/react/src/SelectPanel/SelectPanel.dev.stories.tsx
francinelucca Mar 20, 2025
6b6224d
address review comments
francinelucca Mar 20, 2025
78d744f
use strict equality in SelectPanel stories
francinelucca Mar 20, 2025
c187e40
Merge branch 'main' of github.com:primer/react into select-panel-empt…
francinelucca Mar 21, 2025
23a1be1
remove duplicate import
francinelucca Mar 21, 2025
5006680
Merge branch 'main' of github.com:primer/react into select-panel-empt…
francinelucca Mar 25, 2025
4c3d636
fix(SelectPanel): align message API with notice
francinelucca Mar 25, 2025
80743d6
Merge branch 'main' of github.com:primer/react into select-panel-empt…
francinelucca Mar 25, 2025
238ecd1
test(vrt): update snapshots
francinelucca Mar 25, 2025
07a4fab
fix(SelectPanel): remove liveregion
francinelucca Mar 25, 2025
70e4b30
Merge branch 'select-panel-empty-state' of github.com:primer/react in…
francinelucca Mar 25, 2025
d3d6875
remove unused var
francinelucca Mar 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/new-mangos-fold.md

Choose a reason for hiding this comment

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

test

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@primer/react": minor
---

SelectPanel: Implement empty state (behind ff)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion e2e/components/SelectPanel.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const scenarios = matrix({
name: 'With Placeholder for Search Input',
},
{id: 'components-selectpanel-examples--above-tall-body', name: 'Above Tall Body'},
{id: 'components-selectpanel-examples--height-variantions-and-scroll', name: 'Height Variantions and Scroll'},
{id: 'components-selectpanel-examples--height-variations-and-scroll', name: 'Height Variations and Scroll'},
{
id: 'components-selectpanel-examples--height-initial-with-overflowing-items-story',
name: 'Height Initial with Overflowing Items',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.Container {
display: flex;
height: 100%;
overflow: auto;
flex-grow: 1;
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {VisuallyHidden} from '../VisuallyHidden'
import type {SxProp} from '../sx'
import type {FilteredActionListLoadingType} from './FilteredActionListLoaders'
import {FilteredActionListLoadingTypes, FilteredActionListBodyLoader} from './FilteredActionListLoaders'
import classes from './FilteredActionList.module.css'
import {ActionListContainerContext} from '../ActionList/ActionListContainerContext'

import {isValidElementType} from 'react-is'
Expand All @@ -32,6 +33,7 @@ export interface FilteredActionListProps
onInputRefChanged?: (ref: React.RefObject<HTMLInputElement>) => void
textInputProps?: Partial<Omit<TextInputProps, 'onChange'>>
inputRef?: React.RefObject<HTMLInputElement>
message?: React.ReactNode
className?: string
announcementsEnabled?: boolean
}
Expand All @@ -54,6 +56,7 @@ export function FilteredActionList({
sx,
groupMetadata,
showItemDividers,
message,
className,
selectionVariant,
announcementsEnabled = true,
Expand Down Expand Up @@ -150,6 +153,47 @@ export function FilteredActionList({
return itemsInGroup
}

function getBodyContent() {
if (loading && scrollContainerRef.current && loadingType.appearsInBody) {
return <FilteredActionListBodyLoader loadingType={loadingType} height={scrollContainerRef.current.clientHeight} />
}
if (message) {
return message
}

return (
<ActionListContainerContext.Provider
value={{
container: 'FilteredActionList',
listRole: 'listbox',
selectionAttribute: 'aria-selected',
selectionVariant,
enableFocusZone: true,
}}
>
<ActionList ref={listRef} showDividers={showItemDividers} {...listProps} id={listId} sx={{flexGrow: 1}}>
{groupMetadata?.length
? groupMetadata.map((group, index) => {
return (
<ActionList.Group key={index}>
<ActionList.GroupHeading variant={group.header?.variant ? group.header.variant : undefined}>
{group.header?.title ? group.header.title : `Group ${group.groupId}`}
</ActionList.GroupHeading>
{getItemListForEachGroup(group.groupId).map((item, index) => {
const key = item.key ?? item.id?.toString() ?? index.toString()
return <MappedActionListItem key={key} {...item} renderItem={listProps.renderItem} />
})}
</ActionList.Group>
)
})
: items.map((item, index) => {
const key = item.key ?? item.id?.toString() ?? index.toString()
return <MappedActionListItem key={key} {...item} renderItem={listProps.renderItem} />
})}
</ActionList>
</ActionListContainerContext.Provider>
)
}
useAnnouncements(items, listRef, inputRef, enableAnnouncements)

return (
Expand Down Expand Up @@ -183,42 +227,9 @@ export function FilteredActionList({
/>
</StyledHeader>
<VisuallyHidden id={inputDescriptionTextId}>Items will be filtered as you type</VisuallyHidden>
<Box ref={scrollContainerRef} overflow="auto" display="flex" flexGrow={1}>
{loading && scrollContainerRef.current && loadingType.appearsInBody ? (
<FilteredActionListBodyLoader loadingType={loadingType} height={scrollContainerRef.current.clientHeight} />
) : (
<ActionListContainerContext.Provider
value={{
container: 'FilteredActionList',
listRole: 'listbox',
selectionAttribute: 'aria-selected',
selectionVariant,
enableFocusZone: true,
}}
>
<ActionList ref={listRef} showDividers={showItemDividers} {...listProps} id={listId} sx={{flexGrow: 1}}>
{groupMetadata?.length
? groupMetadata.map((group, index) => {
return (
<ActionList.Group key={index}>
<ActionList.GroupHeading variant={group.header?.variant ? group.header.variant : undefined}>
{group.header?.title ? group.header.title : `Group ${group.groupId}`}
</ActionList.GroupHeading>
{getItemListForEachGroup(group.groupId).map((item, index) => {
const key = item.key ?? item.id?.toString() ?? index.toString()
return <MappedActionListItem key={key} {...item} renderItem={listProps.renderItem} />
})}
</ActionList.Group>
)
})
: items.map((item, index) => {
const key = item.key ?? item.id?.toString() ?? index.toString()
return <MappedActionListItem key={key} {...item} renderItem={listProps.renderItem} />
})}
</ActionList>
</ActionListContainerContext.Provider>
)}
</Box>
<div ref={scrollContainerRef} className={classes.Container}>
{getBodyContent()}
</div>
</Box>
)
}
Expand Down
13 changes: 12 additions & 1 deletion packages/react/src/SelectPanel/SelectPanel.dev.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,21 @@ import type {ItemInput} from '../deprecated/ActionList/List'
import {FeatureFlags} from '../FeatureFlags'
import FormControl from '../FormControl'

const meta = {
const meta: Meta<typeof SelectPanel> = {
title: 'Components/SelectPanel/Dev',
component: SelectPanel,
} satisfies Meta<typeof SelectPanel>

export default meta

const NoResultsMessage = (filter: string): {variant: 'empty'; title: string; body: string} => {
return {
variant: 'empty',
title: `No language found for \`${filter}\``,
body: 'Adjust your search term to find other languages',
}
}

function getColorCircle(color: string) {
return function () {
return (
Expand Down Expand Up @@ -108,6 +116,7 @@ export const WithCss = () => {
onSelectedChange={setSelected}
onFilterChange={setFilter}
className="testCustomClassnameMono"
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
</FeatureFlags>
Expand Down Expand Up @@ -159,6 +168,7 @@ export const WithSx = () => {
onSelectedChange={setSelected}
onFilterChange={setFilter}
sx={{fontFamily: 'Times New Roman'}}
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
</FeatureFlags>
Expand Down Expand Up @@ -211,6 +221,7 @@ export const WithSxAndCSS = () => {
onFilterChange={setFilter}
sx={{fontFamily: 'Times New Roman'}}
className="testCustomClassnameMono"
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
</FeatureFlags>
Expand Down
43 changes: 42 additions & 1 deletion packages/react/src/SelectPanel/SelectPanel.docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,48 @@
"type": "string | React.ReactElement",
"defaultValue": "null",
"description": "Footer rendered at the end of the panel"
},
{
"name": "message",
"type": "{title: string | React.ReactElement; variant: 'empty' | 'error' | 'warning'; body: React.ReactNode;}",
"defaultValue": "A default empty message is provided by default if this option is not supplied",
"description": "Message to display in the panel in case of error or empty results"
},
{
"name": "notice",
"type": "{text: string | React.ReactElement; variant: 'empty' | 'error' | 'warning';}",
"description": "Optional notice to display on top of the panel"
}
],
"subcomponents": []
"subcomponents": [
{
"name": "SelectPanel.Message",
"props": [
{
"name": "title",
"type": "string",
"description": "A title for the message"
},
{
"name": "variant",
"type": "'empty' | 'error' | 'warning'",
"description": "The variant of the message",
"required": true
},
{
"name": "className",
"type": "string",
"defaultValue": "",
"description": "Custom className"
},
{
"name": "children",
"type": "React.ReactNode",
"defaultValue": "",
"required": true,
"description": "The message to display"
}
]
}
]
}
26 changes: 22 additions & 4 deletions packages/react/src/SelectPanel/SelectPanel.examples.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,21 @@ import FormControl from '../FormControl'
import {Stack} from '../Stack'
import {Dialog} from '../experimental'

const meta = {
const meta: Meta<typeof SelectPanel> = {
title: 'Components/SelectPanel/Examples',
component: SelectPanel,
} satisfies Meta<typeof SelectPanel>

export default meta

const NoResultsMessage = (filter: string): {variant: 'empty'; title: string; body: string} => {
return {
variant: 'empty',
title: `No language found for \`${filter}\``,
body: 'Adjust your search term to find other languages',
}
}

function getColorCircle(color: string) {
return function () {
return (
Expand Down Expand Up @@ -82,6 +90,7 @@ export const HeightInitialWithOverflowingItemsStory = () => {
onSelectedChange={setSelected}
onFilterChange={setFilter}
overlayProps={{width: 'small', height: 'initial', maxHeight: 'xsmall'}}
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
)
Expand Down Expand Up @@ -127,6 +136,7 @@ export const HeightInitialWithUnderflowingItemsStory = () => {
onFilterChange={setFilter}
showItemDividers={true}
overlayProps={{width: 'small', height: 'initial', maxHeight: 'xsmall'}}
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
)
Expand All @@ -149,7 +159,7 @@ export const HeightInitialWithUnderflowingItemsAfterFetch = () => {
[fetchedItems, filter, selected],
)
// design guidelines say to sort selected items first
const selectedItemsSortedFirst = fetchedItems.sort((a, b) => {
const selectedItemsSortedFirst = filteredItems.sort((a, b) => {
const aIsSelected = selected.some(selectedItem => selectedItem.text === a.text)
const bIsSelected = selected.some(selectedItem => selectedItem.text === b.text)
if (aIsSelected && !bIsSelected) return -1
Expand Down Expand Up @@ -179,13 +189,14 @@ export const HeightInitialWithUnderflowingItemsAfterFetch = () => {
placeholder="Select labels" // button text when no items are selected
open={open}
onOpenChange={onOpenChange}
loading={filteredItems.length === 0}
loading={filteredItems.length === 0 && !filter}
items={selectedItemsSortedFirst}
selected={selected}
onSelectedChange={setSelected}
onFilterChange={setFilter}
showItemDividers={true}
overlayProps={{width: 'small', height, maxHeight: 'xsmall'}}
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
)
Expand Down Expand Up @@ -228,6 +239,7 @@ export const AboveTallBody = () => {
onSelectedChange={setSelected}
onFilterChange={setFilter}
showItemDividers={true}
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
<div
style={{
Expand All @@ -245,7 +257,7 @@ export const AboveTallBody = () => {
)
}

export const HeightVariantionsAndScroll = () => {
export const HeightVariationsAndScroll = () => {
const longItems = [...items, ...items, ...items, ...items, ...items, ...items, ...items, ...items]
const [filter, setFilter] = useState('')
// Example A
Expand Down Expand Up @@ -293,6 +305,7 @@ export const HeightVariantionsAndScroll = () => {
onFilterChange={setFilter}
showItemDividers={true}
overlayProps={{height: 'medium'}}
message={selectedItemsSortedFirstA.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
<br />
Expand All @@ -316,6 +329,7 @@ export const HeightVariantionsAndScroll = () => {
height: 'auto',
maxHeight: 'medium',
}}
message={selectedItemsSortedFirstB.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
</>
Expand Down Expand Up @@ -390,6 +404,7 @@ export const CustomItemRenderer = () => {
</Box>
</ActionList.Item>
)}
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
)
Expand Down Expand Up @@ -439,6 +454,7 @@ export const ItemsInScope = () => {
selected={selected}
onSelectedChange={setSelected}
onFilterChange={setFilter}
message={selectedItemsSortedFirst.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</FormControl>
)
Expand Down Expand Up @@ -484,6 +500,7 @@ export const RepositionAfterLoading = () => {
selected={selected}
onSelectedChange={setSelected}
onFilterChange={setFilter}
message={filteredItems.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</Stack>
</>
Expand Down Expand Up @@ -531,6 +548,7 @@ export const SelectPanelRepositionInsideDialog = () => {
onSelectedChange={setSelected}
onFilterChange={setFilter}
overlayProps={{anchorSide: 'outside-top'}}
message={filteredItems.length === 0 ? NoResultsMessage(filter) : undefined}
/>
</Stack>
</Dialog>
Expand Down
Loading
Loading