index.tsx 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. "use client";
  2. // import { useRouter } from "@/i18n/routing";
  3. import { Link } from "@/i18n/routing";
  4. import { getToken } from "@/utils/Cookies";
  5. import React from "react";
  6. import Wheel from "../Wheel";
  7. const HomeWheel = (props: any) => {
  8. const doStart = () => {
  9. if (!getToken()) {
  10. return;
  11. }
  12. };
  13. const doEnd = () => {
  14. if (typeof props?.doClose === "function") {
  15. setTimeout(() => {
  16. props.doClose("confirm");
  17. }, 1000);
  18. }
  19. };
  20. const centerWrap = React.useCallback(() => {
  21. return ({ children }: any) => {
  22. if (getToken()) {
  23. return <>{children}</>;
  24. }
  25. return (
  26. <Link href="/login" onClick={(evt: any) => evt.stopPropagation()}>
  27. {children}
  28. </Link>
  29. );
  30. };
  31. }, []);
  32. const CenterWrap = centerWrap();
  33. return (
  34. <div className="relative py-[.4rem]">
  35. <div className="relative z-[10]">
  36. <Wheel
  37. className="px-[30px]"
  38. onStart={doStart}
  39. onEnd={doEnd}
  40. center={
  41. <CenterWrap>
  42. <div
  43. className="flex items-center justify-center"
  44. style={{
  45. background: "url('/wheel/RotaryCenter.webp')",
  46. width: "1.1rem",
  47. height: "1.1rem",
  48. backgroundSize: "100% 100%",
  49. }}
  50. >
  51. <img
  52. src="/wheel/word.webp"
  53. className="w-[80%]"
  54. alt=""
  55. style={{
  56. animation:
  57. "pulse 2s linear 0s infinite normal none running",
  58. }}
  59. />
  60. </div>
  61. </CenterWrap>
  62. }
  63. renderBg={
  64. <div
  65. className="absolute left-[50%] top-[50%] -translate-x-1/2 -translate-y-1/2 transform"
  66. style={{ width: "calc(100% - 60px + 38px)", top: `calc(50% - 5px)` }}
  67. >
  68. <img src="/wheel/waipan_bg.webp" alt="" />
  69. </div>
  70. }
  71. arrow={() => (
  72. <div className="relative pt-[.2rem]">
  73. <img
  74. src="/wheel/Turntableoutsidethebox.webp"
  75. className="!w-[.64rem]"
  76. alt=""
  77. />
  78. <img
  79. src="/wheel/zhizhen_bg.webp"
  80. className="absolute left-[50%] top-[.25rem] !h-[auto] !w-[.3rem] -translate-x-[50%] transform"
  81. alt=""
  82. />
  83. </div>
  84. )}
  85. ></Wheel>
  86. </div>
  87. <div className="absolute -bottom-[60px]">
  88. <div className="relative flex justify-center">
  89. <img src="/wheel/spinbt.webp" className="relative z-[9] w-[90%]" alt="" />
  90. <img
  91. src="/wheel/peishi6_bg.webp"
  92. className="absolute -bottom-[.1rem] -right-[.1rem] z-[11] w-[.7rem]"
  93. alt=""
  94. />
  95. <img
  96. src="/wheel/peishi4_bg.webp"
  97. alt=""
  98. className="absolute -right-[.1rem] bottom-[.47rem] z-[7] w-[.9rem]"
  99. />
  100. <img
  101. src="/wheel/peishi1_bg.webp"
  102. className="absolute -left-[.1rem] bottom-[.15rem] z-[7] w-[.9rem]"
  103. alt=""
  104. />
  105. </div>
  106. </div>
  107. <div className="absolute -top-[.32rem] flex w-[100%] justify-center">
  108. <div className="relativeflex justify-center">
  109. <img src="/wheel/peishi3_bg.webp" className="relative z-[8] w-[2rem]" alt="" />
  110. <img
  111. src="/wheel/spinLeft.webp"
  112. className="absolute -right-[.1rem] -top-[.1rem] z-[7] w-[1.4rem] origin-center"
  113. style={{ transform: "rotateY(180deg)" }}
  114. alt=""
  115. />
  116. <img
  117. src="/wheel/spinLeft.webp"
  118. className="absolute -left-[.1rem] -top-[.1rem] z-[7] w-[1.4rem] origin-center"
  119. alt=""
  120. />
  121. <img
  122. src="/wheel/peishi5_bg.webp"
  123. className="absolute -top-[.3rem] left-[.1rem] w-[.75rem]"
  124. alt=""
  125. />
  126. </div>
  127. </div>
  128. </div>
  129. );
  130. };
  131. export default HomeWheel;