import React, { useState } from 'react' import { connect } from '@formily/react-schema-renderer' import { Select, Button, Space } from 'antd' import { mapStyledProps, mapTextComponent, compose, isStr, isArr } from '../shared' import ViewFactory from '@/components/views' import Drawer from '@/components/pages/AdminLoader/Drawer'; import View from '@/components/pages/AdminLoader/View'; function transform({value, multiple, labelField, valueField = 'id'}) { let selectedKeys = []; let selectedValue = []; const values = Array.isArray(value) ? value : [value]; selectedKeys = values.filter(item => item).map(item => item[valueField]); selectedValue = values.filter(item => item).map(item => { return { value: item[valueField], label: item[labelField], } }); if (!multiple) { return [selectedKeys.shift(), selectedValue.shift()]; } return [selectedKeys, selectedValue]; } export function DrawerSelectComponent(props) { const { __parent, size, schema = {}, disabled, viewName, target, multiple, filter, resourceName, associatedKey, labelField, valueField = 'id', value, onChange } = props; const [selectedKeys, selectedValue] = transform({value, multiple, labelField, valueField }); const [selectedRowKeys, setSelectedRowKeys] = useState(multiple ? selectedKeys : [selectedKeys]); const [selectedRows, setSelectedRows] = useState(selectedValue); const [options, setOptions] = useState(selectedValue); const { title = '' } = schema; return ( <> ); } export const DrawerSelect = connect({ getProps: mapStyledProps, getComponent: mapTextComponent, })(DrawerSelectComponent) export default DrawerSelect