import { Avatar, Card, Checkbox, Input, Modal, Space } from 'antd'; import _ from 'lodash'; import React, { useState } from 'react'; import styles from '../style.module.css'; import IconFont from './IconFonts'; type PropType = { visible: boolean; setVisible: (visible: boolean) => void; onCheckAllChange: (e: any) => void; indeterminate: boolean; checkAll: boolean; allowUserIds: string[]; setAllowUserIds: (allowUserIds: string[]) => void; onOk: (roomName: string) => void; checked: (v: any) => boolean; disabled: (v: any) => boolean; title: string; okText: string; defaultValue: string; members: any[]; }; const ChatModal: React.FC = ({ visible, setVisible, onCheckAllChange, indeterminate, checkAll, allowUserIds, setAllowUserIds, onOk, disabled, checked, title, okText, defaultValue, members, }) => { const [roomName, setRoomName] = useState(''); return ( setVisible(false)} okText={okText} okButtonProps={{ disabled: allowUserIds.length === 0, }} onOk={() => { if (allowUserIds.length > 0) { onOk(roomName); } }} > setRoomName(e.target.value)} /> 选中全部 {members.map((v) => (
{ if (e.target.checked) { setAllowUserIds([...new Set(allowUserIds.concat(v.user_id))]); } else if (allowUserIds.includes(v.user_id)) { setAllowUserIds( _.remove(allowUserIds, (a) => { return a !== v.user_id; }) ); } }} > {v.user_name}
))}
已选择 {allowUserIds.length} {members .filter((s) => allowUserIds.includes(s.user_id)) .map((v) => (
{v.user_name} setAllowUserIds(allowUserIds.filter((a) => a !== v.user_id))} />
))}
); }; export default ChatModal;