Files
element-plus/packages/components/transfer/src/useComputedData.ts
三咲智子 55348b30b6 style: use prettier (#3228)
* style: use prettier

* style: just prettier format, no code changes

* style: eslint fix
object-shorthand, prefer-const

* style: fix no-void

* style: no-console
2021-09-04 19:29:28 +08:00

43 lines
930 B
TypeScript

import { computed } from 'vue'
import type { TransferProps } from './transfer'
export const useComputedData = (props: TransferProps) => {
const propsKey = computed(() => props.props.key)
const dataObj = computed(() => {
return props.data.reduce(
(o, cur) => (o[cur[propsKey.value]] = cur) && o,
{}
)
})
const sourceData = computed(() => {
return props.data.filter(
(item) => !props.modelValue.includes(item[propsKey.value])
)
})
const targetData = computed(() => {
if (props.targetOrder === 'original') {
return props.data.filter((item) =>
props.modelValue.includes(item[propsKey.value])
)
} else {
return props.modelValue.reduce((arr, cur) => {
const val = dataObj.value[cur]
if (val) {
arr.push(val)
}
return arr
}, [])
}
})
return {
propsKey,
sourceData,
targetData,
}
}