{"version":3,"file":"ChatModal.jsx","sourceRoot":"","sources":["ChatModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Avatar, Card, Checkbox, Input, Modal, Space } from 'antd';\nimport _ from 'lodash';\nimport React, { useState } from 'react';\n\nimport styles from '../style.module.css';\nimport IconFont from './IconFonts';\n\ntype PropType = {\n  visible: boolean;\n  setVisible: (visible: boolean) => void;\n  onCheckAllChange: (e: any) => void;\n  indeterminate: boolean;\n  checkAll: boolean;\n  allowUserIds: string[];\n  setAllowUserIds: (allowUserIds: string[]) => void;\n  onOk: (roomName: string) => void;\n  checked: (v: any) => boolean;\n  disabled: (v: any) => boolean;\n  title: string;\n  okText: string;\n  defaultValue: string;\n  members: any[];\n};\nconst ChatModal: React.FC<PropType> = ({\n  visible,\n  setVisible,\n  onCheckAllChange,\n  indeterminate,\n  checkAll,\n  allowUserIds,\n  setAllowUserIds,\n  onOk,\n  disabled,\n  checked,\n  title,\n  okText,\n  defaultValue,\n  members,\n}) => {\n  const [roomName, setRoomName] = useState<string>('');\n\n  return (\n    <Modal\n      title={title}\n      visible={visible}\n      className={styles.createModal}\n      onCancel={() => setVisible(false)}\n      okText={okText}\n      okButtonProps={{\n        disabled: allowUserIds.length === 0,\n      }}\n      onOk={() => {\n        if (allowUserIds.length > 0) {\n          onOk(roomName);\n        }\n      }}\n    >\n      <Input\n        placeholder=\"房间名称（选填）\"\n        autoFocus\n        defaultValue={defaultValue}\n        disabled={defaultValue !== ''}\n        onChange={(e) => setRoomName(e.target.value)}\n      />\n      <Card className=\"mt-6\">\n        <Card.Grid hoverable={false} className={styles.userlist}>\n          <Checkbox indeterminate={indeterminate} onChange={onCheckAllChange} checked={checkAll}>\n            选中全部\n          </Checkbox>\n          {members.map((v) => (\n            <div className=\"my-4\" key={v.user_id}>\n              <Checkbox\n                checked={checked(v)}\n                disabled={disabled(v)}\n                onChange={(e) => {\n                  if (e.target.checked) {\n                    setAllowUserIds([...new Set(allowUserIds.concat(v.user_id))]);\n                  } else if (allowUserIds.includes(v.user_id)) {\n                    setAllowUserIds(\n                      _.remove(allowUserIds, (a) => {\n                        return a !== v.user_id;\n                      })\n                    );\n                  }\n                }}\n              >\n                <Space>\n                  <Avatar src={v.avatar} size={28} />\n                  {v.user_name}\n                </Space>\n              </Checkbox>\n            </div>\n          ))}\n        </Card.Grid>\n        <Card.Grid hoverable={false} className={styles.userlist}>\n          <Space>\n            已选择\n            <span className=\"font-bold\">{allowUserIds.length}</span>人\n          </Space>\n          {members\n            .filter((s) => allowUserIds.includes(s.user_id))\n            .map((v) => (\n              <div className=\"my-4 flex items-center justify-between\" key={v.user_id}>\n                <Space>\n                  <Avatar src={v.avatar} size={28} />\n                  {v.user_name}\n                </Space>\n                <IconFont\n                  icon=\"icon-close\"\n                  className={styles.addRoomIcon}\n                  onClick={() => setAllowUserIds(allowUserIds.filter((a) => a !== v.user_id))}\n                />\n              </div>\n            ))}\n        </Card.Grid>\n      </Card>\n    </Modal>\n  );\n};\n\nexport default ChatModal;\n"]}