{"version":3,"file":"MessageHeader.jsx","sourceRoot":"","sources":["MessageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACzD,OAAO,OAAO,MAAM,OAAO,CAAC;AAC5B,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,WAAW,MAAM,eAAe,CAAC;AAexC,MAAM,aAAa,GAAuB,CAAC,EACzC,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,UAAU,EACV,IAAI,EACJ,SAAS,EACT,OAAO,GACR,EAAE,EAAE;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAE7D,OAAO,CACL,EACE;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CACnC;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAC9E;UAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAC5B;QAAA,EAAE,GAAG,CACL;QAAA,CAAC,IAAI,CAAC,IAAI,IAAI;YACZ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC/E;YAAA,CAAC,OAAO,CAAC,CAAC,CAAC,CACT,CAAC,KAAK,CACJ,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CACtC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAChB,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;wBACd,SAAS,CACP,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;4BACtB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBACnC,CAAC,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CACF,SAAS,CACT,YAAY,CAAC,CAAC,GAAG,EAAE;wBACjB,IAAI,IAAI,CAAC,IAAI,EAAE;4BACb,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC1F,UAAU,CAAC,KAAK,CAAC,CAClB,CAAC;yBACH;oBACH,CAAC,CAAC,CACF,MAAM,CAAC,CAAC,GAAG,EAAE;wBACX,UAAU,CAAC,KAAK,CAAC,CAAC;oBACpB,CAAC,CAAC,EACF,CACH,CAAC,CAAC,CAAC,CACF,CAAC,GAAG,CACF;gBAAA,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAE;gBAC5D,CAAC,QAAQ,CACP,IAAI,CAAC,kBAAkB,CACvB,SAAS,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC3B,OAAO,CAAC,CAAC,GAAG,EAAE;wBACZ,UAAU,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC,CAAC,EAEN;cAAA,EAAE,GAAG,CAAC,CACP,CACH;UAAA,EAAE,GAAG,CAAC;YACN,CAAC,GAAG,CACF;YAAA,CAAC,QAAQ,CACP,IAAI,CAAC,gCAAgC,CACrC,SAAS,CAAC,uCAAuC,CACjD,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,EAExC;UAAA,EAAE,GAAG,CAAC;SACP,CACH;MAAA,EAAE,GAAG,CACL;MAAA,CAAC,IAAI,CAAC,IAAI,IAAI,CACZ,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CACjC,WAAW,CACX,KAAK,CAAC,CAAC,GAAG,CAAC,CACX,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,2BAA2B,EAAE,CAAC,CACzD,YAAY,CAAC,CAAC,KAAK,CAAC,CACpB,QAAQ,CAAC,CAAC,KAAK,CAAC,CAChB,IAAI,CAAC,CAAC,KAAK,CAAC,CACZ,SAAS,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAEjC;UAAA,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAC1C;YAAA,CAAC,KAAK,CACJ,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B,WAAW,CAAC,IAAI,CAChB,UAAU,CACV,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACjD,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAG,CAAC,EAE7G;UAAA,EAAE,GAAG,CACL;UAAA,CAAC,IAAI,CACH,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAClB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,UAAU,CAC3C,CAAC,CACF,UAAU,CAAC,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CACzB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAC3D;gBAAA,CAAC,OAAO,CACN,MAAM,CAAC,CACL,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAClF;sBAAA,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,EACtD;oBAAA,EAAE,WAAW,CAAC,CACf,CACD,OAAO,CAAC,CACN,CAAC,IAAI,CACH;sBAAA,CAAC,IAAI,CAAC,SAAS,CACf;sBAAA,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,OAAO,IAAI,CACzC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CACjC;;wBACF,EAAE,GAAG,CAAC,CACP,CACH;oBAAA,EAAE,IAAI,CAAC,CACR,EAEL;cAAA,EAAE,EAAE,CAAC,CACN,CAAC,EAEN;QAAA,EAAE,MAAM,CAAC,CACV,CACH;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { Comment, Drawer, Input, List, Tag } from 'antd';\nimport produce from 'immer';\nimport _ from 'lodash';\nimport React, { useState } from 'react';\n\nimport { patchUpdateRoom } from '../services/chat';\nimport styles from '../style.module.css';\nimport CustomizedAvatar from './CustomizedAvatar';\nimport IconFont from './IconFonts';\nimport UserInfoPop from './UserInfoPop';\n\ntype PropType = {\n  username: string;\n  // eslint-disable-next-line react/no-unused-prop-types\n  drawerVisible?: boolean;\n  setDrawerVisible: (drawerVisible: boolean) => void;\n  setAddVisible: (addVisible: boolean) => void;\n  visible: boolean;\n  setVisible: (visible: boolean) => void;\n  chat: any;\n  onChatSet: (chat: any) => void;\n  members: any[];\n};\n\nconst MessageHeader: React.FC<PropType> = ({\n  username,\n  setDrawerVisible,\n  setAddVisible,\n  visible,\n  setVisible,\n  chat,\n  onChatSet,\n  members,\n}) => {\n  const [editing, setEditing] = useState<boolean>(false);\n  const [filteredUser, setFilteredUser] = useState<string>('');\n\n  return (\n    <>\n      <div className={styles.messageHeader}>\n        <div className={styles.messageHeaderMenu} onClick={() => setDrawerVisible(true)}>\n          <IconFont icon=\"icon-menu\" />\n        </div>\n        {chat.room && [\n          <div className={styles.messageHeaderTitle} onDoubleClick={() => setEditing(true)}>\n            {editing ? (\n              <Input\n                defaultValue={chat.room.name || '未命名'}\n                bordered={false}\n                onChange={(e) => {\n                  onChatSet(\n                    produce(chat, (draft) => {\n                      draft.room.name = e.target.value;\n                    })\n                  );\n                }}\n                autoFocus\n                onPressEnter={() => {\n                  if (chat.room) {\n                    patchUpdateRoom(username, chat.room.id, chat.room.name, chat.room.allow_user_ids).then(() =>\n                      setEditing(false)\n                    );\n                  }\n                }}\n                onBlur={() => {\n                  setEditing(false);\n                }}\n              />\n            ) : (\n              <div>\n                {chat.room.name || '未命名'}（{chat.room.allow_user_ids.length} ）\n                <IconFont\n                  icon=\"icon-pencil-edit\"\n                  className={styles.editIcon}\n                  onClick={() => {\n                    setEditing(true);\n                  }}\n                />\n              </div>\n            )}\n          </div>,\n          <div>\n            <IconFont\n              icon=\"icon-ellipsis-options-vertical\"\n              className=\"cursor-pointer pr-4 text-xl font-bold\"\n              onClick={() => setVisible(!visible)}\n            />\n          </div>,\n        ]}\n      </div>\n      {chat.room && (\n        <Drawer\n          visible={visible}\n          onClose={() => setVisible(false)}\n          forceRender\n          width={240}\n          drawerStyle={{ borderLeft: '1px solid var(--gray-100)' }}\n          getContainer={false}\n          closable={false}\n          mask={false}\n          className={styles.userlistDrawer}\n        >\n          <div className={styles.searchInputContainer}>\n            <Input\n              className={styles.searchInput}\n              placeholder=\"搜索\"\n              allowClear\n              onChange={(e) => setFilteredUser(e.target.value)}\n              suffix={<IconFont icon=\"icon-plus\" className={styles.addRoomIcon} onClick={() => setAddVisible(true)} />}\n            />\n          </div>\n          <List\n            dataSource={_.sortBy(\n              members.filter((v) => v.user_name.includes(filteredUser)),\n              (a) => a.user_id !== chat.room?.creator_id\n            )}\n            renderItem={(item: any) => (\n              <li key={item.id} className=\"flex items-center leading-loose\">\n                <Comment\n                  avatar={\n                    <UserInfoPop chat={chat} user={members.filter((u) => u.user_id === item.user_id)[0]}>\n                      <CustomizedAvatar src={item.avatar} className=\"ml-4\" />\n                    </UserInfoPop>\n                  }\n                  content={\n                    <span>\n                      {item.user_name}\n                      {chat.room?.creator_id === item.user_id && (\n                        <Tag className=\"ml-2\" color=\"green\">\n                          群主\n                        </Tag>\n                      )}\n                    </span>\n                  }\n                />\n              </li>\n            )}\n          />\n        </Drawer>\n      )}\n    </>\n  );\n};\n\nexport default MessageHeader;\n"]}