From 5dde8bd71801857ccf61c290ca2ce4deeaa85335 Mon Sep 17 00:00:00 2001
From: speakeloudest
Date: Sun, 7 Sep 2025 23:21:41 -0700
Subject: [PATCH] =?UTF-8?q?fix:=20=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../(main)/(content)/(user)/wallet/page.tsx | 2 +-
apps/user/app/api/kutt/route.ts | 2 +-
.../user/assets/svg-icon/feature/Group 68.svg | 6 +++
.../user/assets/svg-icon/feature/Group 69.svg | 10 ++++
.../assets/svg-icon/feature/Vector (1).svg | 3 ++
.../assets/svg-icon/feature/Vector (2).svg | 3 ++
.../assets/svg-icon/feature/Vector (3).svg | 3 ++
.../assets/svg-icon/feature/Vector (4).svg | 3 ++
.../assets/svg-icon/feature/Vector (5).svg | 3 ++
apps/user/assets/svg-icon/feature/Vector.svg | 3 ++
.../CopyShortenedLink/CopyShortenedLink.tsx | 4 +-
.../SubscribePlan/PlanContent/index.tsx | 51 +++++++++++++++----
apps/user/components/affiliate/index.tsx | 2 +-
13 files changed, 80 insertions(+), 15 deletions(-)
create mode 100644 apps/user/assets/svg-icon/feature/Group 68.svg
create mode 100644 apps/user/assets/svg-icon/feature/Group 69.svg
create mode 100644 apps/user/assets/svg-icon/feature/Vector (1).svg
create mode 100644 apps/user/assets/svg-icon/feature/Vector (2).svg
create mode 100644 apps/user/assets/svg-icon/feature/Vector (3).svg
create mode 100644 apps/user/assets/svg-icon/feature/Vector (4).svg
create mode 100644 apps/user/assets/svg-icon/feature/Vector (5).svg
create mode 100644 apps/user/assets/svg-icon/feature/Vector.svg
diff --git a/apps/user/app/(main)/(content)/(user)/wallet/page.tsx b/apps/user/app/(main)/(content)/(user)/wallet/page.tsx
index a00c602..b4c52bd 100644
--- a/apps/user/app/(main)/(content)/(user)/wallet/page.tsx
+++ b/apps/user/app/(main)/(content)/(user)/wallet/page.tsx
@@ -64,7 +64,7 @@ export default function Page() {
{user?.refer_code}
-
+
diff --git a/apps/user/app/api/kutt/route.ts b/apps/user/app/api/kutt/route.ts
index 1b15d67..bce63c8 100644
--- a/apps/user/app/api/kutt/route.ts
+++ b/apps/user/app/api/kutt/route.ts
@@ -1,5 +1,5 @@
// 你的后端 API 密钥,请确保将其存储在 .env.local 文件中
-const BACKEND_API_KEY = 'Q4PuYh7J2H_DlW2X4XUrwYV-yaKty8dw0dwP4LXM';
+const BACKEND_API_KEY = 'NYTOohHPXUaRye4VylNYLyOBTCzwb1tDPt82fXT9';
import { NextResponse } from 'next/server';
export async function POST(request: Request) {
diff --git a/apps/user/assets/svg-icon/feature/Group 68.svg b/apps/user/assets/svg-icon/feature/Group 68.svg
new file mode 100644
index 0000000..8a78e4c
--- /dev/null
+++ b/apps/user/assets/svg-icon/feature/Group 68.svg
@@ -0,0 +1,6 @@
+
diff --git a/apps/user/assets/svg-icon/feature/Group 69.svg b/apps/user/assets/svg-icon/feature/Group 69.svg
new file mode 100644
index 0000000..f7e1431
--- /dev/null
+++ b/apps/user/assets/svg-icon/feature/Group 69.svg
@@ -0,0 +1,10 @@
+
diff --git a/apps/user/assets/svg-icon/feature/Vector (1).svg b/apps/user/assets/svg-icon/feature/Vector (1).svg
new file mode 100644
index 0000000..ad9cc98
--- /dev/null
+++ b/apps/user/assets/svg-icon/feature/Vector (1).svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/user/assets/svg-icon/feature/Vector (2).svg b/apps/user/assets/svg-icon/feature/Vector (2).svg
new file mode 100644
index 0000000..ae98f48
--- /dev/null
+++ b/apps/user/assets/svg-icon/feature/Vector (2).svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/user/assets/svg-icon/feature/Vector (3).svg b/apps/user/assets/svg-icon/feature/Vector (3).svg
new file mode 100644
index 0000000..e19e479
--- /dev/null
+++ b/apps/user/assets/svg-icon/feature/Vector (3).svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/user/assets/svg-icon/feature/Vector (4).svg b/apps/user/assets/svg-icon/feature/Vector (4).svg
new file mode 100644
index 0000000..4ffb637
--- /dev/null
+++ b/apps/user/assets/svg-icon/feature/Vector (4).svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/user/assets/svg-icon/feature/Vector (5).svg b/apps/user/assets/svg-icon/feature/Vector (5).svg
new file mode 100644
index 0000000..7676062
--- /dev/null
+++ b/apps/user/assets/svg-icon/feature/Vector (5).svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/user/assets/svg-icon/feature/Vector.svg b/apps/user/assets/svg-icon/feature/Vector.svg
new file mode 100644
index 0000000..6a9e4ac
--- /dev/null
+++ b/apps/user/assets/svg-icon/feature/Vector.svg
@@ -0,0 +1,3 @@
+
diff --git a/apps/user/components/CopyShortenedLink/CopyShortenedLink.tsx b/apps/user/components/CopyShortenedLink/CopyShortenedLink.tsx
index a70a207..dada304 100644
--- a/apps/user/components/CopyShortenedLink/CopyShortenedLink.tsx
+++ b/apps/user/components/CopyShortenedLink/CopyShortenedLink.tsx
@@ -46,9 +46,9 @@ const CopyShortenedLink = ({ className }: { className?: string }) => {
{
- if (text) {
+ if (!text) {
toast.success('text is undefined');
- return '';
+ return;
}
if (result) {
toast.success(t('copySuccess'));
diff --git a/apps/user/components/SubscribePlan/PlanContent/index.tsx b/apps/user/components/SubscribePlan/PlanContent/index.tsx
index e06f0b6..d9c91f4 100644
--- a/apps/user/components/SubscribePlan/PlanContent/index.tsx
+++ b/apps/user/components/SubscribePlan/PlanContent/index.tsx
@@ -99,18 +99,24 @@ const StarRating = ({ rating, maxRating = 5 }: { rating: number; maxRating?: num
);
+import SvgIcon from '@/components/SvgIcon';
// 功能列表组件
const FeatureList = ({ plan }: { plan: API.Subscribe }) => {
const t = useTranslations('subscribe.detail');
const tSubscribe = useTranslations('subscribe');
const tOffer = useTranslations('components.offerDialog');
- const features = [{ label: tOffer('availableNodes'), value: plan?.server_count }];
+ const features = [
+ { label: tOffer('availableNodes'), icon: 'feature/Vector (5)', value: plan?.server_count },
+ ];
return (
-
+
-
-
{t('availableTraffic')}
+
+
+ {t('availableTraffic')}
+
@@ -118,7 +124,10 @@ const FeatureList = ({ plan }: { plan: API.Subscribe }) => {
-
-
{tSubscribe('billing.duration')}
+
+
+ {tSubscribe('billing.duration')}
+
{plan.origin_price ? '365' : '30'}
{tSubscribe('Day')}
@@ -127,7 +136,10 @@ const FeatureList = ({ plan }: { plan: API.Subscribe }) => {
-
-
{t('connectionSpeed')}
+
+
+ {t('connectionSpeed')}
+
@@ -135,7 +147,22 @@ const FeatureList = ({ plan }: { plan: API.Subscribe }) => {
-
- {t('connectedDevices')}
+
+
+ {plan?.name?.includes('pro') ? (
+ IEPL专线
+ ) : (
+ 国内中转+专线中转
+ )}
+
+
+
+
-
+
+
+
+ {t('connectedDevices')}
+
@@ -147,14 +174,18 @@ const FeatureList = ({ plan }: { plan: API.Subscribe }) => {
className='py-1 text-xs font-light leading-[1.8461538461538463em] text-black sm:text-sm'
>
- {feature.label}:
+
+
+ {feature.label}:
+
{feature.value}
))}
-
-
+
-
-
+
+
{tOffer('networkStabilityIndex')}
@@ -208,7 +239,7 @@ const PlanCard: React.FC<{
{t('subscribe')}
-
+
{/* 功能列表 */}
diff --git a/apps/user/components/affiliate/index.tsx b/apps/user/components/affiliate/index.tsx
index aafc598..74c5883 100644
--- a/apps/user/components/affiliate/index.tsx
+++ b/apps/user/components/affiliate/index.tsx
@@ -85,7 +85,7 @@ export default function Affiliate() {
{user?.refer_code}
-
+