EditableAvatarGroup.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import User, { type IUser } from "../auth/User";
  2. import { Popover, Space } from "antd";
  3. import WatchList from "./WatchList";
  4. import { type IDataType, WatchAddButton } from "./WatchAdd"
  5. interface IWidget {
  6. users?: IUser[];
  7. onFinish?: ((formData: IDataType) => Promise<boolean | void>) | undefined;
  8. onDelete?: ((user: IUser) => Promise<boolean | void>) | undefined;
  9. }
  10. const EditableAvatarGroup = ({ users, onFinish, onDelete }: IWidget) => {
  11. return (
  12. <Space>
  13. <Popover
  14. trigger={"click"}
  15. content={<WatchList data={users} onDelete={onDelete} />}
  16. >
  17. <div>
  18. {users?.map((item, id) => {
  19. return (
  20. <span
  21. key={id}
  22. style={{ display: "inline-block", marginRight: -8 }}
  23. >
  24. <User {...item} showName={false} hidePopover />
  25. </span>
  26. );
  27. })}
  28. </div>
  29. </Popover>
  30. <WatchAddButton data={users} onFinish={onFinish} onDelete={onDelete} />
  31. </Space>
  32. );
  33. };
  34. export default EditableAvatarGroup;