feat: add HTTP entry link and fix frontend build
这个提交包含在:
@@ -3,7 +3,7 @@
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
|
||||
import { PixelAvatar } from "@/components/pixel-avatar";
|
||||
import { apiFetch } from "@/lib/api";
|
||||
import { apiFetch, listRatingHistory, type RatingHistoryItem } from "@/lib/api";
|
||||
import { readToken } from "@/lib/auth";
|
||||
import { useI18nText } from "@/lib/i18n";
|
||||
|
||||
|
||||
@@ -101,6 +101,8 @@ export function AppNav() {
|
||||
const pathname = usePathname();
|
||||
const router = useRouter();
|
||||
const { theme, setTheme, language, setLanguage, themes, t } = useUiPreferences();
|
||||
const directHttpAccessUrl =
|
||||
process.env.NEXT_PUBLIC_HTTP_ENTRY_URL?.trim() || "http://8.211.173.24:7888/";
|
||||
|
||||
const [hasToken, setHasToken] = useState<boolean>(() => Boolean(readToken()));
|
||||
const [isAdmin, setIsAdmin] = useState(false);
|
||||
@@ -384,6 +386,15 @@ export function AppNav() {
|
||||
<option value="zh">{t("prefs.lang.zh")}</option>
|
||||
</select>
|
||||
</label>
|
||||
<a
|
||||
href={directHttpAccessUrl}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
className="rounded-md border px-2 py-1 text-xs hover:bg-zinc-100 sm:text-sm"
|
||||
title={directHttpAccessUrl}
|
||||
>
|
||||
{t("nav.link.http_ip_port")}
|
||||
</a>
|
||||
<span className={hasToken ? "text-emerald-700" : "text-zinc-500"}>
|
||||
{hasToken ? t("nav.logged_in") : t("nav.logged_out")}
|
||||
</span>
|
||||
|
||||
@@ -31,6 +31,7 @@ export const enMessages: ThemeMessages = {
|
||||
"nav.link.api_docs": "API Docs",
|
||||
"nav.link.auth": "Sign In",
|
||||
"nav.link.me": "My Account",
|
||||
"nav.link.http_ip_port": "HTTP (IP:Port)",
|
||||
|
||||
"mobile.tab.problems": "Problems",
|
||||
"mobile.tab.submissions": "Submits",
|
||||
|
||||
@@ -31,6 +31,7 @@ export const zhMessages: ThemeMessages = {
|
||||
"nav.link.api_docs": "API文档",
|
||||
"nav.link.auth": "登录",
|
||||
"nav.link.me": "我的",
|
||||
"nav.link.http_ip_port": "IP+端口访问",
|
||||
|
||||
"mobile.tab.problems": "题库",
|
||||
"mobile.tab.submissions": "提交",
|
||||
|
||||
@@ -31,6 +31,7 @@ export const enMessages: ThemeMessages = {
|
||||
"nav.link.api_docs": "Redstone Logic",
|
||||
"nav.link.auth": "Login to Server",
|
||||
"nav.link.me": "Character Sheet",
|
||||
"nav.link.http_ip_port": "HTTP (IP:Port)",
|
||||
|
||||
"mobile.tab.problems": "Quests",
|
||||
"mobile.tab.submissions": "History",
|
||||
|
||||
@@ -31,6 +31,7 @@ export const zhMessages: ThemeMessages = {
|
||||
"nav.link.api_docs": "红石电路图",
|
||||
"nav.link.auth": "登录服务器",
|
||||
"nav.link.me": "角色面板",
|
||||
"nav.link.http_ip_port": "IP+端口访问",
|
||||
|
||||
"mobile.tab.problems": "任务",
|
||||
"mobile.tab.submissions": "日志",
|
||||
|
||||
在新工单中引用
屏蔽一个用户