fix: 帮助内容改为服务端变量经 API 下发,运行时可配无需重新构建

This commit is contained in:
erio
2026-03-02 02:46:51 +08:00
parent e5424e6c5e
commit e170d5451e
4 changed files with 10 additions and 4 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@@ -27,6 +27,8 @@ export async function GET(request: NextRequest) {
maxAmount: env.MAX_RECHARGE_AMOUNT, maxAmount: env.MAX_RECHARGE_AMOUNT,
maxDailyAmount: env.MAX_DAILY_RECHARGE_AMOUNT, maxDailyAmount: env.MAX_DAILY_RECHARGE_AMOUNT,
methodLimits, methodLimits,
helpImageUrl: env.PAY_HELP_IMAGE_URL ?? null,
helpText: env.PAY_HELP_TEXT ?? null,
}, },
}); });
} catch (error) { } catch (error) {

View File

@@ -27,6 +27,8 @@ interface AppConfig {
maxAmount: number; maxAmount: number;
maxDailyAmount: number; maxDailyAmount: number;
methodLimits?: Record<string, MethodLimitInfo>; methodLimits?: Record<string, MethodLimitInfo>;
helpImageUrl?: string | null;
helpText?: string | null;
} }
function PayContent() { function PayContent() {
@@ -64,8 +66,8 @@ function PayContent() {
const effectiveUserId = resolvedUserId || userId; const effectiveUserId = resolvedUserId || userId;
const isEmbedded = uiMode === 'embedded' && isIframeContext; const isEmbedded = uiMode === 'embedded' && isIframeContext;
const hasToken = token.length > 0; const hasToken = token.length > 0;
const helpImageUrl = (process.env.NEXT_PUBLIC_PAY_HELP_IMAGE_URL || '').trim(); const helpImageUrl = (config.helpImageUrl || '').trim();
const helpText = (process.env.NEXT_PUBLIC_PAY_HELP_TEXT || '').trim(); const helpText = (config.helpText || '').trim();
const hasHelpContent = Boolean(helpImageUrl || helpText); const hasHelpContent = Boolean(helpImageUrl || helpText);
useEffect(() => { useEffect(() => {
@@ -100,6 +102,8 @@ function PayContent() {
maxAmount: cfgData.config.maxAmount ?? 1000, maxAmount: cfgData.config.maxAmount ?? 1000,
maxDailyAmount: cfgData.config.maxDailyAmount ?? 0, maxDailyAmount: cfgData.config.maxDailyAmount ?? 0,
methodLimits: cfgData.config.methodLimits, methodLimits: cfgData.config.methodLimits,
helpImageUrl: cfgData.config.helpImageUrl ?? null,
helpText: cfgData.config.helpText ?? null,
}); });
} }
} else if (cfgRes.status === 404) { } else if (cfgRes.status === 404) {

View File

@@ -56,8 +56,8 @@ const envSchema = z.object({
ADMIN_TOKEN: z.string().min(1), ADMIN_TOKEN: z.string().min(1),
NEXT_PUBLIC_APP_URL: z.string().url(), NEXT_PUBLIC_APP_URL: z.string().url(),
NEXT_PUBLIC_PAY_HELP_IMAGE_URL: optionalTrimmedString, PAY_HELP_IMAGE_URL: optionalTrimmedString,
NEXT_PUBLIC_PAY_HELP_TEXT: optionalTrimmedString, PAY_HELP_TEXT: optionalTrimmedString,
}); });
export type Env = z.infer<typeof envSchema>; export type Env = z.infer<typeof envSchema>;