fix label picker keep open wnhe something chosen

This commit is contained in:
Mo Tarbin
2026-07-28 00:17:40 -04:00
parent 09c3dbbebc
commit ea89f90edb
2 changed files with 14 additions and 1 deletions

View File

@@ -24,8 +24,17 @@ const BaseOptionPicker = ({
getTriggerText,
onClear,
menuFooter,
open: openProp,
onOpenChange,
}) => {
const [isOpen, setIsOpen] = useState(false)
const [internalOpen, setInternalOpen] = useState(false)
const isControlled = openProp !== undefined
const isOpen = isControlled ? openProp : internalOpen
const setIsOpen = value => {
if (!isControlled) setInternalOpen(value)
const nextValue = typeof value === 'function' ? value(isOpen) : value
onOpenChange?.(nextValue)
}
const buttonRef = useRef(null)
useEffect(() => {

View File

@@ -12,6 +12,7 @@ const LabelsPickerField = ({
emptyDisplay = 'icon-text',
}) => {
const [createOpen, setCreateOpen] = useState(false)
const [pickerOpen, setPickerOpen] = useState(false)
const options = labels.map(label => ({
id: label.id,
@@ -27,6 +28,8 @@ const LabelsPickerField = ({
values={values}
onValuesChange={onChange}
onClear={onClear}
open={pickerOpen}
onOpenChange={setPickerOpen}
emptyDisplay={emptyDisplay}
emptyLabel='Labels'
getItemValue={item => item.id}
@@ -55,6 +58,7 @@ const LabelsPickerField = ({
startDecorator={<Add sx={{ fontSize: '16px' }} />}
onClick={e => {
e.stopPropagation()
setPickerOpen(false)
setCreateOpen(true)
}}
sx={{ width: '100%', justifyContent: 'flex-start' }}