2
0

StudioCard.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { useIntl } from "react-intl";
  2. import { Popover, Avatar } from "antd";
  3. import type { IStudio } from "./Studio"
  4. import { Link } from "react-router";
  5. import React from "react";
  6. interface IWidget {
  7. studio?: IStudio;
  8. children?: JSX.Element;
  9. popOver?: React.ReactNode;
  10. }
  11. const StudioCardWidget = ({ studio, children, popOver }: IWidget) => {
  12. const intl = useIntl();
  13. return (
  14. <Popover
  15. content={
  16. popOver ? (
  17. popOver
  18. ) : (
  19. <>
  20. <div style={{ display: "flex" }}>
  21. <div style={{ paddingRight: 8 }}>
  22. <Avatar
  23. style={{ backgroundColor: "#87d068" }}
  24. size="large"
  25. src={studio?.avatar}
  26. >
  27. {studio?.nickName?.slice(0, 2)}
  28. </Avatar>
  29. </div>
  30. <div>
  31. <div>{studio?.nickName}</div>
  32. <div>
  33. <Link
  34. to={`/blog/${studio?.studioName}/overview`}
  35. target="_blank"
  36. >
  37. {intl.formatMessage({
  38. id: "columns.library.blog.label",
  39. })}
  40. </Link>
  41. </div>
  42. </div>
  43. </div>
  44. </>
  45. )
  46. }
  47. placement="bottomRight"
  48. arrowPointAtCenter
  49. >
  50. {children}
  51. </Popover>
  52. );
  53. };
  54. export default StudioCardWidget;