fix: 帮助内容改为服务端变量经 API 下发,运行时可配无需重新构建
This commit is contained in:
BIN
0e10fd7fa68c9dda45b221f98145dd7a.jpg
Normal file
BIN
0e10fd7fa68c9dda45b221f98145dd7a.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 109 KiB |
@@ -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) {
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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>;
|
||||||
|
|||||||
Reference in New Issue
Block a user