TipIcon.tsx 724 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { css } from "@linaria/core";
  2. import { Tooltip } from "ant-design-vue";
  3. export const TipIcon = (props: {
  4. disable?: boolean;
  5. value?: number;
  6. icons: Array<(...args: any[]) => JSX.Element>;
  7. tips: Array<string | JSX.Element>;
  8. }) => {
  9. const { tips, icons, value = 0, disable } = props;
  10. const tip = tips[value];
  11. const Icon = icons[value];
  12. return (
  13. <Tooltip title={tip}>
  14. <Icon class={[iconStyle, disable ? "icon_disable" : ""]} />
  15. </Tooltip>
  16. );
  17. };
  18. const iconStyle = css`
  19. font-size: 16px;
  20. border-radius: 4px;
  21. cursor: pointer;
  22. &.icon_disable {
  23. color: @inf-text-less-color;
  24. pointer-events: none;
  25. opacity: 0.5;
  26. }
  27. &:hover {
  28. background: rgba(0, 0, 0, 0.1);
  29. }
  30. `;