chore: list filter transfer value to array

This commit is contained in:
Joel 2024-09-25 13:41:56 +08:00
parent 0281eb796d
commit 195ac19774
2 changed files with 7 additions and 6 deletions

View File

@ -30,6 +30,7 @@ const FilterCondition: FC<Props> = ({
}) => { }) => {
const { t } = useTranslation() const { t } = useTranslation()
const isSelect = [ComparisonOperator.in, ComparisonOperator.notIn, ComparisonOperator.allOf].includes(condition.comparison_operator) const isSelect = [ComparisonOperator.in, ComparisonOperator.notIn, ComparisonOperator.allOf].includes(condition.comparison_operator)
const isTransferMethod = condition.key === 'transfer_method'
const selectOptions = useMemo(() => { const selectOptions = useMemo(() => {
if (isSelect) { if (isSelect) {
if (condition.key === 'type' || condition.comparison_operator === ComparisonOperator.allOf) { if (condition.key === 'type' || condition.comparison_operator === ComparisonOperator.allOf) {
@ -38,7 +39,7 @@ const FilterCondition: FC<Props> = ({
value: item.value, value: item.value,
})) }))
} }
if (condition.key === 'transfer_method') { if (isTransferMethod) {
return TRANSFER_METHOD.map(item => ({ return TRANSFER_METHOD.map(item => ({
name: t(`${optionNameI18NPrefix}.${item.i18nKey}`), name: t(`${optionNameI18NPrefix}.${item.i18nKey}`),
value: item.value, value: item.value,
@ -47,15 +48,15 @@ const FilterCondition: FC<Props> = ({
return [] return []
} }
return [] return []
}, [condition.comparison_operator, condition.key, isSelect, t]) }, [condition.comparison_operator, condition.key, isSelect, t, isTransferMethod])
const handleChange = useCallback((key: string) => { const handleChange = useCallback((key: string) => {
return (value: any) => { return (value: any) => {
onChange({ onChange({
...condition, ...condition,
[key]: value, [key]: isTransferMethod ? [value] : value,
}) })
} }
}, [condition, onChange]) }, [condition, onChange, isTransferMethod])
const handleSubVariableChange = useCallback((value: string) => { const handleSubVariableChange = useCallback((value: string) => {
onChange({ onChange({
@ -88,7 +89,7 @@ const FilterCondition: FC<Props> = ({
{isSelect && ( {isSelect && (
<Select <Select
items={selectOptions} items={selectOptions}
defaultValue={condition.value} defaultValue={isTransferMethod ? (condition.value as string[])[0] : condition.value as string}
onSelect={item => handleChange('value')(item.value)} onSelect={item => handleChange('value')(item.value)}
className='!text-[13px]' className='!text-[13px]'
wrapperClassName='grow h-8' wrapperClassName='grow h-8'

View File

@ -14,7 +14,7 @@ export type Limit = {
export type Condition = { export type Condition = {
key: string key: string
comparison_operator: ComparisonOperator comparison_operator: ComparisonOperator
value: string | number value: string | number | string[]
} }
export type ListFilterNodeType = CommonNodeType & { export type ListFilterNodeType = CommonNodeType & {