WbwDetailOrder.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { Button, Tooltip } from "antd";
  2. import { useEffect, useState } from "react";
  3. import { useAppSelector } from "../../../hooks";
  4. import { settingInfo } from "../../../reducers/setting";
  5. import { GetUserSetting } from "../../auth/setting/default";
  6. interface IWidget {
  7. sn: number;
  8. curr: number;
  9. visible?: boolean;
  10. onChange?: Function;
  11. }
  12. const WbwDetailOrderWidget = ({
  13. sn,
  14. curr,
  15. visible = false,
  16. onChange,
  17. }: IWidget) => {
  18. const [show, setShow] = useState(true);
  19. const settings = useAppSelector(settingInfo);
  20. const showOrder = GetUserSetting("setting.wbw.order", settings);
  21. const enable = visible && showOrder;
  22. useEffect(() => {
  23. setShow(sn === curr);
  24. }, [curr, sn]);
  25. return enable ? (
  26. <Tooltip
  27. open={show}
  28. placement="right"
  29. getTooltipContainer={(_node: HTMLElement) =>
  30. document.getElementsByClassName("wbw_detail")[0] as HTMLElement
  31. }
  32. title={
  33. <Button
  34. type="link"
  35. size="small"
  36. onClick={() => {
  37. if (typeof onChange !== "undefined") {
  38. onChange();
  39. }
  40. }}
  41. >
  42. {curr === 5 ? "完成" : "下一步"}
  43. </Button>
  44. }
  45. >
  46. <span style={{ display: "inline-box", width: 1, height: 30 }}></span>
  47. </Tooltip>
  48. ) : (
  49. <></>
  50. );
  51. };
  52. export default WbwDetailOrderWidget;