fix(lint): resolve unused vars and any types in apps/web/src/pages/subscription/Plans.tsx
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 4s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 1m24s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m30s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m39s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m47s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 2m20s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m54s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m56s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 5m25s
CI/CD Pipeline / CI Gate (pull_request) Failing after 2s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m57s
AI Code Review / AI Code Review (pull_request) Successful in 6m49s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 30h29m45s
CI/CD Pipeline / PR Build API Image (pull_request) Failing after 30h30m0s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 30h29m26s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / PR Build Worker Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 30h23m55s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 30h29m9s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 30h29m9s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 30h23m54s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 30h29m16s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 30h29m21s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 30h29m21s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 30h29m22s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 30h29m26s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 30h29m34s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 3s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 4s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 1m24s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 1m30s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m39s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m47s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 2m20s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m54s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m56s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 5m25s
CI/CD Pipeline / CI Gate (pull_request) Failing after 2s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m57s
AI Code Review / AI Code Review (pull_request) Successful in 6m49s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 30h29m45s
CI/CD Pipeline / PR Build API Image (pull_request) Failing after 30h30m0s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 30h29m26s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / PR Build Worker Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 30h23m55s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 30h23m57s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 30h29m9s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 30h29m9s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 30h23m54s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 30h29m16s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 30h29m21s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 30h29m21s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 30h29m22s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 30h29m24s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 30h29m26s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 30h29m34s
This commit is contained in:
@@ -31,7 +31,7 @@ import {
|
||||
import { useNavigate } from "react-router-dom"
|
||||
import PageHead from "@/components/layout/PageHead"
|
||||
import { usePointsStore } from "@/store/pointsStore"
|
||||
import { SUBSCRIPTION_PLANS, createPointsOrder, subscribe } from "@/api/points"
|
||||
import { SUBSCRIPTION_PLANS, createPointsOrder } from "@/api/points"
|
||||
import type { PointsPackage } from "@/api/points/types"
|
||||
import { getPointsPackages } from "@/api/points"
|
||||
import "./Plans.css"
|
||||
@@ -67,12 +67,12 @@ const formatYuan = (cents: number) =>
|
||||
|
||||
const Plans: React.FC = () => {
|
||||
const navigate = useNavigate()
|
||||
const { balance, subscription, init, loading: storeLoading } = usePointsStore()
|
||||
const { balance, init } = usePointsStore()
|
||||
const [selectedBilling, setSelectedBilling] = useState<"monthly" | "quarterly" | "yearly">(
|
||||
"quarterly",
|
||||
)
|
||||
const [packages, setPackages] = useState<PointsPackage[]>([])
|
||||
const [subscribing, setSubscribing] = useState(false)
|
||||
const [subscribing] = useState(false)
|
||||
const [buying, setBuying] = useState<string | null>(null)
|
||||
|
||||
useEffect(() => {
|
||||
@@ -85,12 +85,12 @@ const Plans: React.FC = () => {
|
||||
const isMember = !!balance?.is_member
|
||||
const memberType = balance?.member_type ?? null
|
||||
|
||||
const /** 根据会员等级计算积分包折后价(分) */
|
||||
getPackPrice = (pkg: PointsPackage): number => {
|
||||
const mt = memberType ?? "free"
|
||||
const key = `discounted_price_for_${mt}` as const
|
||||
return (pkg as any)[key] ?? pkg.price
|
||||
}
|
||||
/** 根据会员等级计算积分包折后价(分) */
|
||||
const getPackPrice = (pkg: PointsPackage): number => {
|
||||
const mt = memberType ?? "free"
|
||||
const key = `discounted_price_for_${mt}` as const
|
||||
return (pkg as PointsPackage & Record<string, number>)[key] ?? pkg.price
|
||||
}
|
||||
|
||||
const selectedPlan = useMemo(
|
||||
() => SUBSCRIPTION_PLANS.find((p) => p.id === selectedBilling)!,
|
||||
@@ -139,8 +139,9 @@ const Plans: React.FC = () => {
|
||||
),
|
||||
okText: "知道了",
|
||||
})
|
||||
} catch (e: any) {
|
||||
message.error(e?.message ?? "创建订单失败")
|
||||
} catch (e) {
|
||||
const err = e as { message?: string }
|
||||
message.error(err?.message ?? "创建订单失败")
|
||||
} finally {
|
||||
setBuying(null)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user