index.tsx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { Popover } from "antd";
  2. import guideToolsSvg from "@/assets/pdf/guideTools.svg";
  3. import style from "./index.module.scss";
  4. import { useIntl } from "react-intl";
  5. import IconFont from "@/components/icon-font";
  6. import { windowOpen } from "@/utils/windowOpen";
  7. interface GuideItem {
  8. type: string;
  9. icon: string;
  10. "zh-CN-title": string;
  11. title: string;
  12. desc: string;
  13. goToText: string;
  14. link: string;
  15. }
  16. const ExtractorGuide = () => {
  17. const { formatMessage, messages } = useIntl();
  18. const EXTRACTOR_GUIDE_ITEM_LIST = (messages?.["extractor.side.guide_list"] ||
  19. []) as unknown as GuideItem[];
  20. const content = (
  21. <div>
  22. <div className="text-[1.25rem] font-semibold mt-3 mb-2 ml-4">
  23. {formatMessage({
  24. id: "extractor.guide.title",
  25. })}
  26. </div>
  27. <hgroup>
  28. {EXTRACTOR_GUIDE_ITEM_LIST?.map((i) => {
  29. return (
  30. <div
  31. key={i.type}
  32. className="flex p-4 items-center cursor-pointer hover:bg-[#F4F5F9] rounded group h-[6.5rem]"
  33. onClick={() => windowOpen(i.link)}
  34. >
  35. <img
  36. src={i.icon}
  37. alt=""
  38. className="w-[1.5rem] h-[1.5rem] transition-all mr-[0.75rem]"
  39. />
  40. <div className="">
  41. <div className="font-semibold transition-all text-[1rem]">
  42. {i.title}
  43. </div>
  44. <div className="text-base text-[13px] text-[#121316]/[0.6] transition-all ">
  45. {i.desc}
  46. </div>
  47. <div className="h-0 mt-2 overflow-hidden !text-[13px] text-[#121316]/[0.8] transition-all group-hover:h-auto">
  48. {i.goToText}
  49. <IconFont type="icon-ArrowRightOutlined" className="ml-1" />
  50. </div>
  51. </div>
  52. </div>
  53. );
  54. })}
  55. </hgroup>
  56. </div>
  57. );
  58. return (
  59. <Popover
  60. overlayClassName={style.extractorGuide}
  61. content={content}
  62. showArrow={false}
  63. placement="right"
  64. >
  65. <img
  66. className="w-[1.32rem] h-[1.32rem] p-0.5 hover:rotate-45 transition-all cursor-pointer rounded"
  67. src={guideToolsSvg}
  68. alt="guideToolsSvg"
  69. />
  70. </Popover>
  71. );
  72. };
  73. export default ExtractorGuide;