Skip to content

Commit

Permalink
fix: AreaPicker exists blank
Browse files Browse the repository at this point in the history
  • Loading branch information
hbztd committed Nov 21, 2023
1 parent 833bdf0 commit f8ec092
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions packages/core/src/picker/picker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { prefixClassname } from "../styles"
import { useRefs, useToRef } from "../utils/state"
import { isElementOf } from "../utils/validate"
import { unitToPx } from "../utils/format/unit"
import AreaPickerColumns from "../area-picker/area-picker-columns"
import PickerColumns from "./picker-columns"
import PickerToolbar from "./picker-toolbar"
import PickerTitle from "./picker-title"
Expand Down Expand Up @@ -115,13 +116,17 @@ function Picker(props: PickerProps) {
let toolbar: ReactNode = null
const __children__: ReactNode[] = []
const columns: ReactNode[] = []
let hasAreaColumnsComp = false
Children.toArray(childrenProp).forEach((child: ReactNode) => {
if (isElementOf(child, PickerColumn)) {
const element = child as ReactElement
columns.push(element)
} else if (isElementOf(child, PickerToolbar)) {
toolbar = child
} else {
if (isElementOf(child, AreaPickerColumns)) {
hasAreaColumnsComp = true
}
__children__.push(child)
}
})
Expand All @@ -132,12 +137,15 @@ function Picker(props: PickerProps) {
<PickerButton type="confirm">{confirmText}</PickerButton>
</PickerToolbar>
}
if (_.isEmpty(columns) && columnsProp && columnsProp.length > 0) {
if (!hasAreaColumnsComp && _.isEmpty(columns) && columnsProp && columnsProp.length > 0) {
(Array.isArray(columnsProp[0]) ? columnsProp : [columnsProp]).forEach((col, i) => {
columns.push(<PickerColumn key={i}>{col.map((data, ii) => <PickerOption key={ii} label={data[fieldNames.label!]} value={data[fieldNames.value!]} disabled={data.disabled} />)}</PickerColumn>)
})
}
__children__.unshift(<PickerColumns key="-1" children={columns} />)
if (!hasAreaColumnsComp) {
__children__.unshift(<PickerColumns key="-1" children={columns} />)
}

__children__.unshift(toolbar)
return __children__
}, [childrenProp, title, confirmText, cancelText, columnsProp, fieldNames])
Expand Down

0 comments on commit f8ec092

Please sign in to comment.