From 707c94f86e743956e9aab9639757ac3e55265eb2 Mon Sep 17 00:00:00 2001 From: lyzno1 Date: Tue, 11 Nov 2025 15:15:40 +0800 Subject: [PATCH] feat: add URL parameter support for pricing modal using action=showPricing --- web/app/education-apply/constants.ts | 1 + web/context/modal-context.tsx | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/web/app/education-apply/constants.ts b/web/app/education-apply/constants.ts index 2c42d2b263..75b6da67e5 100644 --- a/web/app/education-apply/constants.ts +++ b/web/app/education-apply/constants.ts @@ -2,3 +2,4 @@ export const EDUCATION_VERIFY_URL_SEARCHPARAMS_ACTION = 'getEducationVerify' export const EDUCATION_VERIFYING_LOCALSTORAGE_ITEM = 'educationVerifying' export const EDUCATION_PRICING_SHOW_ACTION = 'educationPricing' export const EDUCATION_RE_VERIFY_ACTION = 'educationReVerify' +export const SHOW_PRICING_MODAL_ACTION = 'showPricing' diff --git a/web/context/modal-context.tsx b/web/context/modal-context.tsx index 5baadc934b..708a951dde 100644 --- a/web/context/modal-context.tsx +++ b/web/context/modal-context.tsx @@ -3,7 +3,7 @@ import type { Dispatch, SetStateAction } from 'react' import { useCallback, useState } from 'react' import { createContext, useContext, useContextSelector } from 'use-context-selector' -import { useRouter, useSearchParams } from 'next/navigation' +import { useSearchParams } from 'next/navigation' import type { ConfigurationMethodEnum, Credential, @@ -13,6 +13,7 @@ import type { } from '@/app/components/header/account-setting/model-provider-page/declarations' import { EDUCATION_VERIFYING_LOCALSTORAGE_ITEM, + SHOW_PRICING_MODAL_ACTION, } from '@/app/education-apply/constants' import type { ModerationConfig, PromptVariable } from '@/models/debug' import type { @@ -151,8 +152,9 @@ export const ModalContextProvider = ({ const [showEducationExpireNoticeModal, setShowEducationExpireNoticeModal] = useState | null>(null) const searchParams = useSearchParams() - const router = useRouter() - const [showPricingModal, setShowPricingModal] = useState(searchParams.get('show-pricing') === '1') + const [showPricingModal, setShowPricingModal] = useState( + searchParams.get('action') === SHOW_PRICING_MODAL_ACTION, + ) const [showAnnotationFullModal, setShowAnnotationFullModal] = useState(false) const handleCancelAccountSettingModal = () => { const educationVerifying = localStorage.getItem(EDUCATION_VERIFYING_LOCALSTORAGE_ITEM) @@ -308,8 +310,6 @@ export const ModalContextProvider = ({ { !!showPricingModal && ( { - if (searchParams.get('show-pricing') === '1') - router.push(location.pathname, { forceOptimisticNavigation: true } as any) removeSpecificQueryParam('action') setShowPricingModal(false) }} />