fix: isReadOnly in Autocomplete (#2429)

* feat(autocomplete): add isReadOnly example

* fix(autocomplete): isReadOnly logic in Autocomplete

* feat(root): add changeset - fixed isReadOnly logic in Autocomplete

* chore(stories): set isClearable to false

* fix(autocomplete): revise isClearable logic
This commit is contained in:
աӄա 2024-03-06 03:15:20 +08:00 committed by GitHub
parent feafb36fcc
commit bae544d198
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,5 @@
---
"@nextui-org/autocomplete": patch
---
fixed isReadOnly logic in Autocomplete (#2420)

View File

@ -123,6 +123,8 @@ export function useAutocomplete<T extends object>(originalProps: UseAutocomplete
const isClearable =
originalProps.disableClearable !== undefined
? !originalProps.disableClearable
: originalProps.isReadOnly
? false
: originalProps.isClearable;
const {
@ -154,6 +156,7 @@ export function useAutocomplete<T extends object>(originalProps: UseAutocomplete
classNames,
onOpenChange,
onClose,
isReadOnly = false,
...otherProps
} = props;
@ -166,6 +169,9 @@ export function useAutocomplete<T extends object>(originalProps: UseAutocomplete
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);

View File

@ -55,6 +55,11 @@ export default {
type: "boolean",
},
},
isReadonly: {
control: {
type: "boolean",
},
},
},
decorators: [
(Story) => (
@ -654,6 +659,16 @@ export const Required = {
},
};
export const ReadOnly = {
render: Template,
args: {
...defaultProps,
selectedKey: "cat",
isReadOnly: true,
},
};
export const Disabled = {
render: Template,