chore: migrate frontend assets to OSS and same-origin APIs

This commit is contained in:
2026-06-04 16:03:49 +08:00
parent 7c6129555b
commit c7c52c1467
55 changed files with 728 additions and 292 deletions
+22 -4
View File
@@ -1,5 +1,6 @@
import { CheckCircleOutlined, FlagOutlined, MailOutlined, PhoneOutlined } from "@ant-design/icons";
import { useState, type FormEvent } from "react";
import { useEffect, useState, type FormEvent } from "react";
import { publicConfigClient, type WebPublicConfig } from "../../api/publicConfigClient";
import { reportClient, type ReportInput } from "../../api/reportClient";
type SubmitState = "idle" | "loading" | "success" | "error";
@@ -31,6 +32,7 @@ function ReportPage() {
const [contactPhone, setContactPhone] = useState("");
const [submitState, setSubmitState] = useState<SubmitState>("idle");
const [errorMsg, setErrorMsg] = useState("");
const [publicConfig, setPublicConfig] = useState<WebPublicConfig>({});
const canSubmit =
submitState !== "loading" && reportType !== "" && title.trim() !== "" && description.trim() !== "";
@@ -48,6 +50,22 @@ function ReportPage() {
setErrorMsg("");
};
useEffect(() => {
let cancelled = false;
publicConfigClient
.get()
.then((config) => {
if (!cancelled) setPublicConfig(config);
})
.catch(() => {
if (!cancelled) setPublicConfig({});
});
return () => {
cancelled = true;
};
}, []);
const handleSubmit = async (event: FormEvent) => {
event.preventDefault();
if (!canSubmit) return;
@@ -85,9 +103,9 @@ function ReportPage() {
</header>
<div className="report-contact-strip">
<span><MailOutlined /> {import.meta.env.VITE_REPORT_EMAIL || "support@omniai.com"}</span>
<span><PhoneOutlined /> {import.meta.env.VITE_REPORT_PHONE || "请在环境变量配置客服电话"}</span>
<span>{import.meta.env.VITE_ICP_RECORD || "ICP备案信息待配置"}</span>
<span><MailOutlined /> {publicConfig.contactEmail || "由服务器配置"}</span>
<span><PhoneOutlined /> {publicConfig.contactPhone || "由服务器配置"}</span>
<span>{publicConfig.icpRecord || "由服务器配置"}</span>
</div>
{submitState === "success" ? (