diff --git a/.env.production b/.env.production index 1a41ab5..e3d1f55 100644 --- a/.env.production +++ b/.env.production @@ -1,11 +1,11 @@ ### # @LastEditors: John # @Date: 2024-06-26 15:04:10 - # @LastEditTime: 2024-06-27 20:18:39 + # @LastEditTime: 2024-07-01 15:13:11 # @Author: John ### -VITE_BASE_URL=https://node.yotta-network.com -VITE_BASE_API_URL=https://node.yotta-network.com/api +VITE_BASE_URL=https://www.nodeai.world +VITE_BASE_API_URL=https://www.nodeai.world/api VITE_PARTICIPATE_CHAIN_ID=56 VITE_PURCHASED_CONTRACT_ADDRESS=0x17c38AaF564716A3D9dD4EBE7Fb5db2D43c6A834 VITE_NETWORK_USDT_ADDRESS=0x55d398326f99059fF775485246999027B3197955 diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 438b050..846adda 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/public/favicon.svg b/public/favicon.svg index 080cf7f..474cfa7 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/App.css b/src/App.css index da8b319..30bc8ee 100644 --- a/src/App.css +++ b/src/App.css @@ -3,7 +3,7 @@ html, #root { width: 100%; height: 100%; - background: url("./assets/home_bg.png"); + background: #fafafb; } @font-face { diff --git a/src/App.tsx b/src/App.tsx index 82514cb..23a12ef 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,7 @@ /* * @LastEditors: John * @Date: 2024-06-17 17:20:03 - * @LastEditTime: 2024-06-28 17:44:02 + * @LastEditTime: 2024-07-01 16:41:42 * @Author: John */ import { Route, Routes } from "react-router-dom"; @@ -16,7 +16,7 @@ import InvitationList from "./pages/InvitationList"; import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import useUserStore from "./store/User"; -import { getUrlQueryParam, isMobile } from "./utils"; +import { getUrlParameterByName, isMobile } from "./utils"; import { UrlQueryParamsKey } from "./constants"; import { signAndLogin } from "./utils/wallet"; import { useAccount } from "wagmi"; @@ -26,7 +26,9 @@ function App() { const { address } = useAccount(); useEffect(() => { i18n.changeLanguage(currantLang); - UpdateInviteCode(getUrlQueryParam(UrlQueryParamsKey.INVITE_CODE) || ""); + UpdateInviteCode( + getUrlParameterByName(UrlQueryParamsKey.INVITE_CODE) || "" + ); return () => {}; }, []); diff --git a/src/assets/logo.svg b/src/assets/logo.svg index 080cf7f..474cfa7 100644 --- a/src/assets/logo.svg +++ b/src/assets/logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/nft_bg.svg b/src/assets/nft_bg.svg index b9ace89..519bc35 100644 --- a/src/assets/nft_bg.svg +++ b/src/assets/nft_bg.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/components/Header-m.module.css b/src/components/Header-m.module.css index 3449260..d1d1936 100644 --- a/src/components/Header-m.module.css +++ b/src/components/Header-m.module.css @@ -1,17 +1,17 @@ /* * @LastEditors: John * @Date: 2024-06-18 15:19:21 - * @LastEditTime: 2024-06-18 18:49:40 + * @LastEditTime: 2024-07-01 14:10:45 * @Author: John */ .header { - background-color: #101010; + background-color: #fafafb; padding: 0 15px; .header_top { display: flex; align-items: center; gap: 8px; - border-bottom: 0.25px solid #333333; + border-bottom: 1px solid #d8d8d8; padding: 10px 0; .header_logo { @@ -30,7 +30,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 1; } @@ -57,7 +57,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 1; } diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 2f1cdc5..8bb277e 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,7 +1,7 @@ /* * @LastEditors: John * @Date: 2024-06-18 15:16:31 - * @LastEditTime: 2024-06-28 14:05:29 + * @LastEditTime: 2024-07-01 15:19:02 * @Author: John */ import Picker, { @@ -70,7 +70,7 @@ function Mobile() { {navTitle} diff --git a/src/components/WalletProvider.tsx b/src/components/WalletProvider.tsx index 24803bb..19135ab 100644 --- a/src/components/WalletProvider.tsx +++ b/src/components/WalletProvider.tsx @@ -61,7 +61,7 @@ createWeb3Modal({ wagmiConfig: config, projectId, themeVariables: { - "--w3m-accent": "#2dfcfc", + "--w3m-accent": "#EA6D28", }, featuredWalletIds: [ ...(window.ethereum diff --git a/src/i18n/translation/en.json b/src/i18n/translation/en.json index 96be455..b45cf35 100644 --- a/src/i18n/translation/en.json +++ b/src/i18n/translation/en.json @@ -22,7 +22,7 @@ "总收益= 已领取 + 待领取": "Total Revenue = Claimed + Pending", "邀请": "Invite", "邀请链接": "Invite Link", - "Invite your friends to become YOTTA nodes and you will get a 20% rebate.": "Invite your friends to become YOTTA nodes and you will get a 20% rebate.", + "Invite your friends to become YOTTA nodes and you will get a 10% rebate.": "Invite your friends to become YOTTA nodes and you will get a 10% rebate.", "数据披露": "Data Disclosure", "资金池": "Fund Pool", "社长席位": "Leader Seats", diff --git a/src/main.tsx b/src/main.tsx index c085e6b..b2cd527 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,7 +1,7 @@ /* * @LastEditors: John * @Date: 2024-06-17 17:20:03 - * @LastEditTime: 2024-06-20 11:43:14 + * @LastEditTime: 2024-07-01 16:46:07 * @Author: John */ import "@/i18n/init.ts"; @@ -15,9 +15,9 @@ import EventBusProvider from "./context/EventBusContext.tsx"; import { WalletProvider } from "./components/WalletProvider.tsx"; import flexible from "./utils/flexible.ts"; import VConsole from "vconsole"; -import { getUrlQueryParam } from "./utils/index.ts"; +import { getUrlParameterByName } from "./utils/index.ts"; -if (getUrlQueryParam("vconsole") === "1") { +if (getUrlParameterByName("vconsole") === "1") { new VConsole(); } flexible(window, document); diff --git a/src/pages/Feature/useHome.ts b/src/pages/Feature/useHome.ts index 56e7d78..305a4d9 100644 --- a/src/pages/Feature/useHome.ts +++ b/src/pages/Feature/useHome.ts @@ -99,5 +99,6 @@ export default function () { setTabIndex, navigate, userInviteLink, + open, }; } diff --git a/src/pages/Home-m.module.css b/src/pages/Home-m.module.css index e5bb8a1..22f4107 100644 --- a/src/pages/Home-m.module.css +++ b/src/pages/Home-m.module.css @@ -14,10 +14,8 @@ border-radius: 16px; opacity: 1; - background: #171719; - - box-shadow: 0px 4px 10px 0px rgba(45, 252, 252, 0.3), - inset 0px 0px 8px 0px #2dfcfc; + background: #ffffff; + box-shadow: 0px 2px 8px 0px rgba(99, 99, 99, 0.2); padding: 14px 15px; box-sizing: border-box; @@ -57,7 +55,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 0; } @@ -117,10 +115,9 @@ border-radius: 10px; opacity: 1; - background: #2dfcfc; + background: #ea6d28; box-sizing: border-box; - border: 1px solid; padding: 0 20px; @@ -153,7 +150,7 @@ border-radius: 16px; opacity: 1; - background: #212123; + background: #eeeeef; display: flex; flex-direction: column; @@ -173,7 +170,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 0; @@ -193,7 +190,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 1; } @@ -210,7 +207,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 1; } @@ -245,7 +242,7 @@ border-radius: 10px; opacity: 1; - background: #2dfcfc; + background: #ea6d28; color: #101010; } @@ -260,7 +257,8 @@ border-radius: 16px; opacity: 1; - background: #171719; + background: #ffffff; + box-shadow: 0px 2px 8px 0px rgba(99, 99, 99, 0.2); z-index: 1; .nftToken_content_nft { /* 自动布局 */ @@ -286,7 +284,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 0; } @@ -303,7 +301,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #2dfcfc; + color: #ea6d28; z-index: 0; @@ -335,7 +333,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 2; } @@ -536,7 +534,7 @@ justify-content: center; align-items: center; padding: 10px 0; - background: #2dfcfc; + background: #ea6d28; z-index: 0; gap: 10px; box-sizing: border-box; @@ -574,7 +572,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 1; } @@ -600,7 +598,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; } } } @@ -625,7 +623,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 0; } @@ -641,7 +639,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #2dfcfc; + color: #ea6d28; z-index: 0; @@ -657,7 +655,8 @@ border-radius: 16px; opacity: 1; - background: #171719; + background: #ffffff; + box-shadow: 0px 2px 8px 0px rgba(99, 99, 99, 0.2); display: flex; flex-direction: column; @@ -680,7 +679,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #333333; z-index: 0; } @@ -697,7 +696,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #eaeaea; + color: #666666; z-index: 1; } @@ -720,7 +719,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 0; diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index 5daa3c1..cf17641 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -1,7 +1,7 @@ /* * @LastEditors: John * @Date: 2024-06-26 15:04:10 - * @LastEditTime: 2024-06-28 14:36:37 + * @LastEditTime: 2024-07-01 16:47:34 * @Author: John */ import classes from "./Home-m.module.css"; @@ -27,6 +27,7 @@ function Mobile() { setTabIndex, navigate, userInviteLink, + open, } = useHome(); return ( @@ -55,7 +56,7 @@ function Mobile() { }} name="tuichu" className={classes.userinfo_top_right_wallet_disconnect} - color={"#fff"} + color={"#000000"} />
@@ -137,7 +138,7 @@ function Mobile() { {t("Buy Node")}
@@ -199,7 +200,7 @@ function Mobile() { {t("邀请列表")}{" "} )} @@ -239,7 +240,7 @@ function Mobile() { {t( - "Invite your friends to become YOTTA nodes and you will get a 20% rebate." + "Invite your friends to become YOTTA nodes and you will get a 10% rebate." )} diff --git a/src/pages/Mint-m.module.css b/src/pages/Mint-m.module.css index 6638966..1830402 100644 --- a/src/pages/Mint-m.module.css +++ b/src/pages/Mint-m.module.css @@ -11,7 +11,7 @@ height: 190px; border-radius: 10px; opacity: 1; - background: #171719; + background: #ffffff; box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16), 0px 3px 6px 0px rgba(0, 0, 0, 0.23); padding: 8px; @@ -95,7 +95,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #9e9e9e; + color: #333333; z-index: 0; } @@ -137,7 +137,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 0; } @@ -154,7 +154,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 1; } @@ -178,7 +178,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 0; } @@ -194,7 +194,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; z-index: 1; } @@ -215,7 +215,7 @@ padding: 11px 40px; gap: 10px; - background: #2dfcfc; + background: #ea6d28; z-index: 3; diff --git a/src/server/api.ts b/src/server/api.ts index 95576ce..df01e13 100644 --- a/src/server/api.ts +++ b/src/server/api.ts @@ -1,7 +1,7 @@ /* * @LastEditors: John * @Date: 2024-06-18 10:28:21 - * @LastEditTime: 2024-06-27 09:52:45 + * @LastEditTime: 2024-07-01 11:55:38 * @Author: John */ import { GET, POST } from "./client"; @@ -54,7 +54,7 @@ export function api_signUp() { chainType: 2; }, any - >({ url: "/api/account/signUp", requiresToken: false }); + >({ url: "/api/account/signUp", requiresToken: false, catchErr: true }); } // 获取钱包签名串 diff --git a/src/server/client.ts b/src/server/client.ts index 739dcee..5a8fea1 100644 --- a/src/server/client.ts +++ b/src/server/client.ts @@ -1,7 +1,7 @@ /* * @LastEditors: John * @Date: 2024-06-18 10:09:21 - * @LastEditTime: 2024-06-21 14:47:26 + * @LastEditTime: 2024-07-01 11:38:43 * @Author: John */ import { Client } from "@hyper-fetch/core"; @@ -17,9 +17,11 @@ import i18next from "i18next"; function initClient({ requiresToken, requiresAddress, + catchErr, }: { requiresToken: boolean; requiresAddress: boolean; + catchErr: boolean; }) { return new Client({ url: import.meta.env.VITE_BASE_API_URL }) .onAuth(async (req) => { @@ -59,6 +61,7 @@ function initClient({ const resData: BASE_RESPONSE = res.data; if (resData.code !== 200 && resData.code !== 0) { if (resData.msg) Toast.show({ content: resData.msg, icon: "fail" }); + if (catchErr) return res; throw new Error(resData.msg || "client on response error"); } return res; @@ -69,12 +72,14 @@ export const POST =

({ url, requiresToken = true, requiresAddress = true, + catchErr = false, }: { url: string; requiresToken?: boolean; requiresAddress?: boolean; + catchErr?: boolean; }) => { - return initClient({ requiresToken, requiresAddress }).createRequest< + return initClient({ requiresToken, requiresAddress, catchErr }).createRequest< BASE_RESPONSE, P, any, @@ -89,12 +94,14 @@ export const GET =

({ url, requiresToken = true, requiresAddress = true, + catchErr = false, }: { url: string; requiresToken?: boolean; requiresAddress?: boolean; + catchErr?: boolean; }) => { - return initClient({ requiresToken, requiresAddress }).createRequest< + return initClient({ requiresToken, requiresAddress, catchErr }).createRequest< BASE_RESPONSE, any, any, diff --git a/src/style/ant-cover-m.css b/src/style/ant-cover-m.css index fa8a2f0..016049f 100644 --- a/src/style/ant-cover-m.css +++ b/src/style/ant-cover-m.css @@ -1,14 +1,350 @@ -.adm-tabs { - .adm-tabs-header { - border-bottom: 0.25px solid #333333; +@media only screen and (max-width: 1024px) { + .adm-tabs { + .adm-tabs-header { + border-bottom: 0.25px solid #333333; - .adm-tabs-tab-line { - background-color: #2dfcfc; + .adm-tabs-tab-line { + background-color: #ea6d28; + } + + .adm-tabs-tab { + opacity: 1; + + font-family: Space Grotesk; + font-size: 14px; + font-weight: 500; + line-height: normal; + letter-spacing: 0em; + + font-variation-settings: "opsz" auto; + font-feature-settings: "kern" on; + color: #666666; + padding-bottom: 4px; + &.adm-tabs-tab-active { + color: #ffffff; + } + } } + .adm-tabs-content { + padding: 0; + } + } - .adm-tabs-tab { + .adm-capsule-tabs { + .adm-capsule-tabs-header { + padding: 0px 15px; + border-bottom: none; + margin-top: 20px; + + .adm-scroll-mask { + opacity: 0 !important; + } + + .adm-capsule-tabs-tab-list { + gap: 8px; + .adm-capsule-tabs-tab-wrapper { + padding: 0; + + .adm-capsule-tabs-tab { + /* 自动布局子元素 */ + height: 25px; + border-radius: 8px; + opacity: 1; + + box-sizing: border-box; + border: 1px solid #ea6d28; + + z-index: 1; + background-color: transparent; + + /* 自动布局子元素 */ + opacity: 1; + + font-family: Space Grotesk; + font-size: 10px; + font-weight: 500; + line-height: 25px; + letter-spacing: 0em; + + font-variation-settings: "opsz" auto; + font-feature-settings: "kern" on; + color: #ffffff; + + z-index: 0; + + padding: 0 14px; + } + + .adm-capsule-tabs-tab-active { + /* 自动布局子元素 */ + height: 25px; + border-radius: 8px; + opacity: 1; + + background: #ea6d28; + + z-index: 0; + + /* 自动布局子元素 */ + opacity: 1; + + font-family: Space Grotesk; + font-size: 10px; + font-weight: 500; + line-height: 25px; + letter-spacing: 0em; + + font-variation-settings: "opsz" auto; + font-feature-settings: "kern" on; + color: #ffffff; + + z-index: 0; + } + } + } + } + } + + /* picker */ + .adm-picker-popup { + .adm-picker-header { + border-bottom: 1px solid #404040; + .adm-picker-header-title { + opacity: 1; + + font-family: Space Grotesk; + font-size: 17px; + font-weight: bold; + line-height: 24px; + letter-spacing: 0px; + + font-variation-settings: "opsz" auto; + font-feature-settings: "kern" on; + color: #ffffff; + } + .adm-picker-header-button { + opacity: 1; + + font-family: Space Grotesk; + font-size: 17px; + font-weight: 500; + line-height: 24px; + letter-spacing: 0px; + + font-variation-settings: "opsz" auto; + font-feature-settings: "kern" on; + color: #1890ff; + } + } + .adm-popup-body { + background-color: #000000; + .adm-picker { + /* height: 280px; */ + .adm-picker-body { + .adm-picker-view { + background-color: #000000; + .adm-picker-view-column { + .adm-picker-view-column-wheel { + .adm-picker-view-column-item { + /* height: 34px; */ + .adm-picker-view-column-item-label { + /* font-family: Space Grotesk; + font-size: 16px; + font-weight: 500; + line-height: 34px; + text-align: center; + letter-spacing: 0px; + + font-variation-settings: "opsz" auto; */ + color: #ffffff; + } + } + } + } + .adm-picker-view-mask { + .adm-picker-view-mask-top, + .adm-picker-view-mask-bottom { + background-color: #000000; + } + .adm-picker-view-mask-middle { + /* height: 34px; */ + border-top: 1px solid #404040; + border-bottom: 1px solid #404040; + } + } + } + } + } + } + } + + /* toast */ + .adm-toast-main { + min-width: 170px !important; + min-height: 40px !important; + max-width: 320px !important; + max-height: max-content !important; + border-radius: 10px !important; + opacity: 1; + + /* 自动布局 */ + padding: 11px 20px !important; + + /* background: rgba(252, 135, 43, 0.5) !important; */ + + box-sizing: border-box !important; + border: 1px solid #ea6d28 !important; + + /* backdrop-filter: blur(10px); */ + + .adm-auto-center-content { + /* 自动布局子元素 */ opacity: 1; + font-family: Space Grotesk; + font-size: 14px; + font-weight: 500; + line-height: normal; + letter-spacing: 0px; + + font-variation-settings: "opsz" auto; + color: #ffffff; + + z-index: 0; + } + } + + .adm-popover-menu { + .adm-popover-arrow { + color: rgba(42, 42, 42, 0.6) !important; + } + .adm-popover-inner { + background: rgba(42, 42, 42, 0.6); + + box-sizing: border-box; + border-image: radial-gradient( + 103% 103% at 50% 50%, + #a41914 0%, + rgba(164, 25, 20, 0) 100% + ); + + backdrop-filter: blur(10px); + + .adm-popover-menu-item { + padding: 0 10px; + background-color: transparent !important; + &::after { + display: none !important; + } + + .adm-popover-menu-item-text { + /* 自动布局子元素 */ + opacity: 1; + + font-family: Space Grotesk; + font-size: 14px; + font-weight: normal; + line-height: normal; + text-transform: capitalize; + letter-spacing: 0em; + + color: #ffffff; + + z-index: 0; + padding: 10px 0; + border-top: 1px solid #3d3d3d; + } + } + } + } + + /* adm-stepper */ + .adm-stepper { + width: calc(100%) !important; + height: 42px; + border-radius: 5px !important; + opacity: 1; + background: rgba(204, 184, 214, 0.2); + box-sizing: border-box !important; + border: 1px solid #ea6d28 !important; + .adm-button { + width: 42px; + height: 42px; + border-radius: 5px; + opacity: 1; + + background: #ea6d28; + + svg { + width: 23px; + height: 23px; + } + } + + .adm-stepper-middle { + .adm-stepper-input { + height: 44px; + background-color: transparent; + + .adm-input-element { + opacity: 1; + + font-family: Space Grotesk; + font-size: 22px; + font-weight: bold; + line-height: normal; + letter-spacing: 0em; + + font-variation-settings: "opsz" auto; + font-feature-settings: "kern" on; + color: #000000; + } + } + } + } + + .adm-dialog { + .adm-center-popup-body { + box-sizing: border-box !important; + border: 1px solid #ea6d28 !important; + border-radius: 10px !important; + background-color: transparent !important; + backdrop-filter: blur(10px); + .adm-dialog-content { + .adm-auto-center-content { + opacity: 1; + + font-family: Space Grotesk; + font-size: 14px; + font-weight: 500; + line-height: normal; + letter-spacing: 0px; + + font-variation-settings: "opsz" auto; + color: #ffffff; + + z-index: 0; + } + } + + .adm-dialog-footer { + .adm-dialog-action-row { + border-top: 1px solid #ea6d28 !important; + + .adm-dialog-button { + span { + color: #ea6d28; + } + } + } + } + } + } + + /* adm-pull-to-refresh */ + .adm-pull-to-refresh { + .adm-pull-to-refresh-head-content { + /* 自动布局子元素 */ font-family: Space Grotesk; font-size: 14px; font-weight: 500; @@ -17,343 +353,9 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #666666; - padding-bottom: 4px; - &.adm-tabs-tab-active { - color: #ffffff; - } - } - } - .adm-tabs-content { - padding: 0; - } -} + color: #9e9e9e; -.adm-capsule-tabs { - .adm-capsule-tabs-header { - padding: 0px 15px; - border-bottom: none; - margin-top: 20px; - - .adm-scroll-mask { - opacity: 0 !important; - } - - .adm-capsule-tabs-tab-list { - gap: 8px; - .adm-capsule-tabs-tab-wrapper { - padding: 0; - - .adm-capsule-tabs-tab { - /* 自动布局子元素 */ - height: 25px; - border-radius: 8px; - opacity: 1; - - box-sizing: border-box; - border: 1px solid #2dfcfc; - - z-index: 1; - background-color: transparent; - - /* 自动布局子元素 */ - opacity: 1; - - font-family: Space Grotesk; - font-size: 10px; - font-weight: 500; - line-height: 25px; - letter-spacing: 0em; - - font-variation-settings: "opsz" auto; - font-feature-settings: "kern" on; - color: #ffffff; - - z-index: 0; - - padding: 0 14px; - } - - .adm-capsule-tabs-tab-active { - /* 自动布局子元素 */ - height: 25px; - border-radius: 8px; - opacity: 1; - - background: #2dfcfc; - - z-index: 0; - - /* 自动布局子元素 */ - opacity: 1; - - font-family: Space Grotesk; - font-size: 10px; - font-weight: 500; - line-height: 25px; - letter-spacing: 0em; - - font-variation-settings: "opsz" auto; - font-feature-settings: "kern" on; - color: #ffffff; - - z-index: 0; - } - } + z-index: 0; } } } - -/* picker */ -.adm-picker-popup { - .adm-picker-header { - border-bottom: 1px solid #404040; - .adm-picker-header-title { - opacity: 1; - - font-family: Space Grotesk; - font-size: 17px; - font-weight: bold; - line-height: 24px; - letter-spacing: 0px; - - font-variation-settings: "opsz" auto; - font-feature-settings: "kern" on; - color: #ffffff; - } - .adm-picker-header-button { - opacity: 1; - - font-family: Space Grotesk; - font-size: 17px; - font-weight: 500; - line-height: 24px; - letter-spacing: 0px; - - font-variation-settings: "opsz" auto; - font-feature-settings: "kern" on; - color: #1890ff; - } - } - .adm-popup-body { - background-color: #000000; - .adm-picker { - /* height: 280px; */ - .adm-picker-body { - .adm-picker-view { - background-color: #000000; - .adm-picker-view-column { - .adm-picker-view-column-wheel { - .adm-picker-view-column-item { - /* height: 34px; */ - .adm-picker-view-column-item-label { - /* font-family: Space Grotesk; - font-size: 16px; - font-weight: 500; - line-height: 34px; - text-align: center; - letter-spacing: 0px; - - font-variation-settings: "opsz" auto; */ - color: #ffffff; - } - } - } - } - .adm-picker-view-mask { - .adm-picker-view-mask-top, - .adm-picker-view-mask-bottom { - background-color: #000000; - } - .adm-picker-view-mask-middle { - /* height: 34px; */ - border-top: 1px solid #404040; - border-bottom: 1px solid #404040; - } - } - } - } - } - } -} - -/* toast */ -.adm-toast-main { - min-width: 170px !important; - min-height: 40px !important; - max-width: 320px !important; - max-height: max-content !important; - border-radius: 10px !important; - opacity: 1; - - /* 自动布局 */ - padding: 11px 20px !important; - - /* background: rgba(252, 135, 43, 0.5) !important; */ - - box-sizing: border-box !important; - border: 1px solid #2dfcfc !important; - - /* backdrop-filter: blur(10px); */ - - .adm-auto-center-content { - /* 自动布局子元素 */ - opacity: 1; - - font-family: Space Grotesk; - font-size: 14px; - font-weight: 500; - line-height: normal; - letter-spacing: 0px; - - font-variation-settings: "opsz" auto; - color: #ffffff; - - z-index: 0; - } -} - -.adm-popover-menu { - .adm-popover-arrow { - color: rgba(42, 42, 42, 0.6) !important; - } - .adm-popover-inner { - background: rgba(42, 42, 42, 0.6); - - box-sizing: border-box; - border-image: radial-gradient( - 103% 103% at 50% 50%, - #a41914 0%, - rgba(164, 25, 20, 0) 100% - ); - - backdrop-filter: blur(10px); - - .adm-popover-menu-item { - padding: 0 10px; - background-color: transparent !important; - &::after { - display: none !important; - } - - .adm-popover-menu-item-text { - /* 自动布局子元素 */ - opacity: 1; - - font-family: Space Grotesk; - font-size: 14px; - font-weight: normal; - line-height: normal; - text-transform: capitalize; - letter-spacing: 0em; - - color: #ffffff; - - z-index: 0; - padding: 10px 0; - border-top: 1px solid #3d3d3d; - } - } - } -} - -/* adm-stepper */ -.adm-stepper { - width: calc(100%) !important; - height: 42px; - border-radius: 5px !important; - opacity: 1; - background: rgba(37, 33, 39, 0.2); - box-sizing: border-box !important; - border: 1px solid #2dfcfc !important; - .adm-button { - width: 42px; - height: 42px; - border-radius: 5px; - opacity: 1; - - background: #2dfcfc; - - svg { - width: 23px; - height: 23px; - } - } - - .adm-stepper-middle { - .adm-stepper-input { - height: 44px; - background-color: transparent; - - .adm-input-element { - opacity: 1; - - font-family: Space Grotesk; - font-size: 22px; - font-weight: bold; - line-height: normal; - letter-spacing: 0em; - - font-variation-settings: "opsz" auto; - font-feature-settings: "kern" on; - color: #ffffff; - } - } - } -} - -.adm-dialog { - .adm-center-popup-body { - box-sizing: border-box !important; - border: 1px solid #2dfcfc !important; - border-radius: 10px !important; - background-color: transparent !important; - backdrop-filter: blur(10px); - .adm-dialog-content { - .adm-auto-center-content { - opacity: 1; - - font-family: Space Grotesk; - font-size: 14px; - font-weight: 500; - line-height: normal; - letter-spacing: 0px; - - font-variation-settings: "opsz" auto; - color: #ffffff; - - z-index: 0; - } - } - - .adm-dialog-footer { - .adm-dialog-action-row { - border-top: 1px solid #2dfcfc !important; - - .adm-dialog-button { - span { - color: #2dfcfc; - } - } - } - } - } -} - -/* adm-pull-to-refresh */ -.adm-pull-to-refresh { - .adm-pull-to-refresh-head-content { - /* 自动布局子元素 */ - font-family: Space Grotesk; - font-size: 14px; - font-weight: 500; - line-height: normal; - letter-spacing: 0em; - - font-variation-settings: "opsz" auto; - font-feature-settings: "kern" on; - color: #9e9e9e; - - z-index: 0; - } -} diff --git a/src/style/react-data-table-component-cover-m.css b/src/style/react-data-table-component-cover-m.css index c3281b5..1b7216b 100644 --- a/src/style/react-data-table-component-cover-m.css +++ b/src/style/react-data-table-component-cover-m.css @@ -11,6 +11,7 @@ height: 16px !important; min-height: 16px !important; background-color: transparent !important; + border-bottom: none; .rdt_TableCol { div { @@ -24,7 +25,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #eaeaea; + color: #333333; } } } @@ -37,6 +38,8 @@ height: 18px !important; min-height: 18px !important; background-color: transparent !important; + border-bottom: none; + .rdt_TableCell { div { opacity: 1; @@ -49,7 +52,7 @@ font-variation-settings: "opsz" auto; font-feature-settings: "kern" on; - color: #ffffff; + color: #000000; } } } diff --git a/src/utils/index.ts b/src/utils/index.ts index 78e7c54..f50befd 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,7 +1,7 @@ /* * @LastEditors: John * @Date: 2024-06-17 18:19:27 - * @LastEditTime: 2024-06-28 15:32:57 + * @LastEditTime: 2024-07-01 16:49:14 * @Author: John */ import { type ClassValue, clsx } from "clsx"; @@ -121,3 +121,14 @@ export function filterAmountBeforeZero(arr: bigint[]) { } return result; } + +export function getUrlParameterByName(name: string, url?: string) { + if (!url) url = window.location.href; + name = name.replace(/[\[\]]/g, "\\$&"); + let regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ""; + console.log("url params:", results); + return decodeURIComponent(results[2].replace(/\+/g, " ")); +} diff --git a/src/utils/wallet.ts b/src/utils/wallet.ts index 91807a5..64443a9 100644 --- a/src/utils/wallet.ts +++ b/src/utils/wallet.ts @@ -1,16 +1,14 @@ /* * @LastEditors: John * @Date: 2024-06-19 15:55:07 - * @LastEditTime: 2024-06-27 15:09:45 + * @LastEditTime: 2024-07-01 16:44:04 * @Author: John */ import { config } from "@/components/WalletProvider"; import { - api_binding_invitation_relationship, api_check_account_registration, api_get_wallet_signature_string, api_login, - api_query_whether_the_user_is_binding_relationship, api_signUp, } from "@/server/api"; import useUserStore from "@/store/User"; @@ -24,7 +22,7 @@ import { } from "@wagmi/core"; import Toast from "antd-mobile/es/components/toast"; import i18next from "i18next"; -import { getUrlQueryParam } from "."; +import { getUrlParameterByName } from "."; import { UrlQueryParamsKey } from "@/constants"; /** @@ -130,7 +128,8 @@ export async function signAndLogin(address?: `0x${string}`): Promise { loadingToast.close(); } } else { - const inviteCode = getUrlQueryParam(UrlQueryParamsKey.INVITE_CODE); + const inviteCode = getUrlParameterByName(UrlQueryParamsKey.INVITE_CODE); + console.log("inviteCode:", inviteCode); if (!inviteCode) { Toast.show({ icon: "fail", @@ -139,7 +138,7 @@ export async function signAndLogin(address?: `0x${string}`): Promise { return loginOut(); } // 注册 - await api_signUp().send({ + const { data } = await api_signUp().send({ data: { account: address, publicKey, @@ -147,7 +146,11 @@ export async function signAndLogin(address?: `0x${string}`): Promise { chainType: 2, }, }); - await signAndLogin(address); + if (data?.code == 0) { + await signAndLogin(address); + } else { + return loginOut(); + } reslove(); loadingToast.close(); }