mirror of
https://github.com/hamster1963/nezha-dash.git
synced 2025-04-24 21:10:45 +08:00
Compare commits
20 Commits
b43ce6a4bf
...
f87615f163
Author | SHA1 | Date | |
---|---|---|---|
|
f87615f163 | ||
|
095c9ed114 | ||
|
91f45e4968 | ||
|
a47a3fc9a5 | ||
|
53b5b33f53 | ||
|
161a57f560 | ||
|
d43f4c8ebb | ||
|
18bc1018e8 | ||
|
ea0a87263e | ||
|
82114cc65b | ||
|
aae30a3294 | ||
|
01c6184b0b | ||
|
63042acba1 | ||
|
094271cfd7 | ||
|
2d1ec2947b | ||
|
1defac061d | ||
|
51f7173f91 | ||
|
32f5c09d8b | ||
|
7b0427a27b | ||
|
c20740a152 |
@ -12,4 +12,5 @@ NEXT_PUBLIC_FixedTopServerName=false
|
||||
NEXT_PUBLIC_CustomLogo=https://nezha-cf.buycoffee.top/apple-touch-icon.png
|
||||
NEXT_PUBLIC_CustomTitle=NezhaDash
|
||||
NEXT_PUBLIC_CustomDescription=NezhaDash is a dashboard for Nezha.
|
||||
NEXT_PUBLIC_Links=[{"link":"https://baidu.com","name":"Baidu"},{"link":"https://google.com","name":"Google"}]
|
||||
NEXT_PUBLIC_DisableIndex=false
|
||||
|
@ -29,12 +29,9 @@ export default function ServerDetailClient({
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const previousPath = sessionStorage.getItem("lastPath");
|
||||
const previousPath = sessionStorage.getItem("fromMainPage");
|
||||
if (previousPath) {
|
||||
setHasHistory(true);
|
||||
} else {
|
||||
const currentPath = window.location.pathname;
|
||||
sessionStorage.setItem("lastPath", currentPath);
|
||||
}
|
||||
}, []);
|
||||
|
||||
|
@ -51,6 +51,7 @@ function Header() {
|
||||
</p>
|
||||
</section>
|
||||
<section className="flex items-center gap-2">
|
||||
<Links />
|
||||
<LanguageSwitcher />
|
||||
<ModeToggle />
|
||||
</section>
|
||||
@ -60,6 +61,39 @@ function Header() {
|
||||
);
|
||||
}
|
||||
|
||||
type links = {
|
||||
link: string;
|
||||
name: string;
|
||||
};
|
||||
|
||||
function Links() {
|
||||
const linksEnv = getEnv("NEXT_PUBLIC_Links");
|
||||
|
||||
const links: links[] | null = linksEnv ? JSON.parse(linksEnv) : null;
|
||||
|
||||
console.log(links);
|
||||
|
||||
if (!links) return null;
|
||||
|
||||
return (
|
||||
<div className="flex items-center gap-2">
|
||||
{links.map((link, index) => {
|
||||
return (
|
||||
<a
|
||||
key={index}
|
||||
href={link.link}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="flex items-center gap-1 text-sm font-medium opacity-50 transition-opacity hover:opacity-100"
|
||||
>
|
||||
{link.name}
|
||||
</a>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
// https://github.com/streamich/react-use/blob/master/src/useInterval.ts
|
||||
const useInterval = (callback: () => void, delay: number | null) => {
|
||||
const savedCallback = useRef<() => void>(() => {});
|
||||
|
@ -29,8 +29,12 @@ export default function ServerCard({
|
||||
const fixedTopServerName =
|
||||
getEnv("NEXT_PUBLIC_FixedTopServerName") === "true";
|
||||
|
||||
const saveSession = () => {
|
||||
sessionStorage.setItem("fromMainPage", "true");
|
||||
};
|
||||
|
||||
return online ? (
|
||||
<Link href={`/${id}`} prefetch={true}>
|
||||
<Link onClick={saveSession} href={`/${id}`} prefetch={true}>
|
||||
<Card
|
||||
className={cn(
|
||||
"flex flex-col items-center justify-start gap-3 p-3 md:px-5 cursor-pointer",
|
||||
|
Loading…
Reference in New Issue
Block a user