mirror of
https://github.com/nextui-org/nextui.git
synced 2025-12-08 19:26:11 +00:00
fix(autocomplete): support isReadOnly for dynamic collections in Autocomplete (#2458)
This commit is contained in:
parent
e4b3c7d1a1
commit
7263daca08
8
.changeset/tough-spies-tease.md
Normal file
8
.changeset/tough-spies-tease.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
"@nextui-org/autocomplete": patch
|
||||
"@nextui-org/dropdown": patch
|
||||
"@nextui-org/popover": patch
|
||||
"@nextui-org/tooltip": patch
|
||||
---
|
||||
|
||||
fix(autocomplete): support isReadOnly for dynamic collections in Autocomplete
|
||||
@ -163,15 +163,12 @@ export function useAutocomplete<T extends object>(originalProps: UseAutocomplete
|
||||
// Setup filter function and state.
|
||||
const {contains} = useFilter(filterOptions);
|
||||
|
||||
const state = useComboBoxState({
|
||||
let state = useComboBoxState({
|
||||
...originalProps,
|
||||
children,
|
||||
menuTrigger,
|
||||
shouldCloseOnBlur,
|
||||
allowsEmptyCollection,
|
||||
...(isReadOnly && {
|
||||
disabledKeys: (children as unknown as Record<string, any>[]).map((o) => o.key),
|
||||
}),
|
||||
defaultFilter: defaultFilter && typeof defaultFilter === "function" ? defaultFilter : contains,
|
||||
onOpenChange: (open, menuTrigger) => {
|
||||
onOpenChange?.(open, menuTrigger);
|
||||
@ -181,6 +178,13 @@ export function useAutocomplete<T extends object>(originalProps: UseAutocomplete
|
||||
},
|
||||
});
|
||||
|
||||
state = {
|
||||
...state,
|
||||
...(isReadOnly && {
|
||||
disabledKeys: new Set([...state.collection.getKeys()].map((k) => k)),
|
||||
}),
|
||||
};
|
||||
|
||||
// Setup refs and get props for child elements.
|
||||
const buttonRef = useRef<HTMLButtonElement>(null);
|
||||
const inputWrapperRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user