mirror of
https://github.com/andwati/dokploy.git
synced 2026-11-13 07:25:17 +00:00
[autofix.ci] apply automated fixes
This commit is contained in:
@@ -4,114 +4,112 @@ import { usePathname, useRouter, useSearchParams } from "next/navigation";
|
|||||||
import { useCallback, useEffect, useState } from "react";
|
import { useCallback, useEffect, useState } from "react";
|
||||||
|
|
||||||
const PAGES = ["compose", "application", "postgres", "redis", "mysql"] as const;
|
const PAGES = ["compose", "application", "postgres", "redis", "mysql"] as const;
|
||||||
type Page = typeof PAGES[number];
|
type Page = (typeof PAGES)[number];
|
||||||
|
|
||||||
type Shortcuts = Record<string, string>;
|
type Shortcuts = Record<string, string>;
|
||||||
type ShortcutsDictionary = Record<Page, Shortcuts>;
|
type ShortcutsDictionary = Record<Page, Shortcuts>;
|
||||||
|
|
||||||
const COMPOSE_SHORTCUTS: Shortcuts = {
|
const COMPOSE_SHORTCUTS: Shortcuts = {
|
||||||
g: "general",
|
g: "general",
|
||||||
e: "environment",
|
e: "environment",
|
||||||
u: "domains",
|
u: "domains",
|
||||||
d: "deployments",
|
d: "deployments",
|
||||||
b: "backups",
|
b: "backups",
|
||||||
s: "schedules",
|
s: "schedules",
|
||||||
v: "volumeBackups",
|
v: "volumeBackups",
|
||||||
l: "logs",
|
l: "logs",
|
||||||
m: "monitoring",
|
m: "monitoring",
|
||||||
a: "advanced",
|
a: "advanced",
|
||||||
};
|
};
|
||||||
|
|
||||||
const APPLICATION_SHORTCUTS: Shortcuts = {
|
const APPLICATION_SHORTCUTS: Shortcuts = {
|
||||||
g: "general",
|
g: "general",
|
||||||
e: "environment",
|
e: "environment",
|
||||||
u: "domains",
|
u: "domains",
|
||||||
p: "preview-deployments",
|
p: "preview-deployments",
|
||||||
s: "schedules",
|
s: "schedules",
|
||||||
v: "volume-backups",
|
v: "volume-backups",
|
||||||
d: "deployments",
|
d: "deployments",
|
||||||
l: "logs",
|
l: "logs",
|
||||||
m: "monitoring",
|
m: "monitoring",
|
||||||
a: "advanced",
|
a: "advanced",
|
||||||
};
|
};
|
||||||
|
|
||||||
const POSTGRES_SHORTCUTS: Shortcuts = {
|
const POSTGRES_SHORTCUTS: Shortcuts = {
|
||||||
g: "general",
|
g: "general",
|
||||||
e: "environment",
|
e: "environment",
|
||||||
l: "logs",
|
l: "logs",
|
||||||
m: "monitoring",
|
m: "monitoring",
|
||||||
b: "backups",
|
b: "backups",
|
||||||
a: "advanced",
|
a: "advanced",
|
||||||
};
|
};
|
||||||
|
|
||||||
const REDIS_SHORTCUTS: Shortcuts = {
|
const REDIS_SHORTCUTS: Shortcuts = {
|
||||||
g: "general",
|
g: "general",
|
||||||
e: "environment",
|
e: "environment",
|
||||||
l: "logs",
|
l: "logs",
|
||||||
m: "monitoring",
|
m: "monitoring",
|
||||||
a: "advanced",
|
a: "advanced",
|
||||||
};
|
};
|
||||||
|
|
||||||
const SHORTCUTS: ShortcutsDictionary = {
|
const SHORTCUTS: ShortcutsDictionary = {
|
||||||
application: APPLICATION_SHORTCUTS,
|
application: APPLICATION_SHORTCUTS,
|
||||||
compose: COMPOSE_SHORTCUTS,
|
compose: COMPOSE_SHORTCUTS,
|
||||||
postgres: POSTGRES_SHORTCUTS,
|
postgres: POSTGRES_SHORTCUTS,
|
||||||
redis: REDIS_SHORTCUTS,
|
redis: REDIS_SHORTCUTS,
|
||||||
mysql: POSTGRES_SHORTCUTS,
|
mysql: POSTGRES_SHORTCUTS,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Use this to register keyboard shortcuts for different pages. Each shortcut
|
* Use this to register keyboard shortcuts for different pages. Each shortcut
|
||||||
* must be prefixed with `g` (like GitHub).
|
* must be prefixed with `g` (like GitHub).
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* - `g g` "General",
|
* - `g g` "General",
|
||||||
* - `g e` "Environment",
|
* - `g e` "Environment",
|
||||||
* - `g u` "Domains",
|
* - `g u` "Domains",
|
||||||
*/
|
*/
|
||||||
export function UseKeyboardNav({ forPage }: { forPage: Page }) {
|
export function UseKeyboardNav({ forPage }: { forPage: Page }) {
|
||||||
const [isModPressed, setModPressed] = useState(false);
|
const [isModPressed, setModPressed] = useState(false);
|
||||||
const [timer, setTimer] = useState<NodeJS.Timeout | null>(null);
|
const [timer, setTimer] = useState<NodeJS.Timeout | null>(null);
|
||||||
|
|
||||||
const sp = useSearchParams();
|
const sp = useSearchParams();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const pathname = usePathname();
|
const pathname = usePathname();
|
||||||
|
|
||||||
const shortcuts = SHORTCUTS[forPage];
|
const shortcuts = SHORTCUTS[forPage];
|
||||||
|
|
||||||
const updateSearchParam = useCallback(
|
const updateSearchParam = useCallback(
|
||||||
(name: string, value: string) => {
|
(name: string, value: string) => {
|
||||||
const params = new URLSearchParams(sp.toString());
|
const params = new URLSearchParams(sp.toString());
|
||||||
params.set(name, value);
|
params.set(name, value);
|
||||||
|
|
||||||
return params.toString();
|
return params.toString();
|
||||||
},
|
},
|
||||||
[sp],
|
[sp],
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleKeyDown = ({ key }: KeyboardEvent) => {
|
const handleKeyDown = ({ key }: KeyboardEvent) => {
|
||||||
if (isModPressed) {
|
if (isModPressed) {
|
||||||
if (timer) clearTimeout(timer);
|
if (timer) clearTimeout(timer);
|
||||||
setModPressed(false);
|
setModPressed(false);
|
||||||
|
|
||||||
if (key in shortcuts) {
|
if (key in shortcuts) {
|
||||||
const tab = shortcuts[key]!;
|
const tab = shortcuts[key]!;
|
||||||
router.push(
|
router.push(`${pathname}?${updateSearchParam("tab", tab)}`);
|
||||||
`${pathname}?${updateSearchParam("tab", tab)}`,
|
}
|
||||||
);
|
} else {
|
||||||
}
|
if (key === "g") {
|
||||||
} else {
|
setModPressed(true);
|
||||||
if (key === "g") {
|
setTimer(setTimeout(() => setModPressed(false), 5000));
|
||||||
setModPressed(true);
|
}
|
||||||
setTimer(setTimeout(() => setModPressed(false), 5000));
|
}
|
||||||
}
|
};
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
window.addEventListener("keydown", handleKeyDown);
|
window.addEventListener("keydown", handleKeyDown);
|
||||||
return () => window.removeEventListener("keydown", handleKeyDown);
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
||||||
}, [isModPressed, timer, updateSearchParam, router, pathname]);
|
}, [isModPressed, timer, updateSearchParam, router, pathname]);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -92,7 +92,7 @@ const Service = (
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="pb-10">
|
<div className="pb-10">
|
||||||
<UseKeyboardNav forPage="application" />
|
<UseKeyboardNav forPage="application" />
|
||||||
<BreadcrumbSidebar
|
<BreadcrumbSidebar
|
||||||
list={[
|
list={[
|
||||||
{ name: "Projects", href: "/dashboard/projects" },
|
{ name: "Projects", href: "/dashboard/projects" },
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ const Service = (
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="pb-10">
|
<div className="pb-10">
|
||||||
<UseKeyboardNav forPage="compose" />
|
<UseKeyboardNav forPage="compose" />
|
||||||
<BreadcrumbSidebar
|
<BreadcrumbSidebar
|
||||||
list={[
|
list={[
|
||||||
{ name: "Projects", href: "/dashboard/projects" },
|
{ name: "Projects", href: "/dashboard/projects" },
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ const MySql = (
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="pb-10">
|
<div className="pb-10">
|
||||||
<UseKeyboardNav forPage="mysql" />
|
<UseKeyboardNav forPage="mysql" />
|
||||||
<BreadcrumbSidebar
|
<BreadcrumbSidebar
|
||||||
list={[
|
list={[
|
||||||
{ name: "Projects", href: "/dashboard/projects" },
|
{ name: "Projects", href: "/dashboard/projects" },
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ const Postgresql = (
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="pb-10">
|
<div className="pb-10">
|
||||||
<UseKeyboardNav forPage="postgres" />
|
<UseKeyboardNav forPage="postgres" />
|
||||||
<BreadcrumbSidebar
|
<BreadcrumbSidebar
|
||||||
list={[
|
list={[
|
||||||
{ name: "Projects", href: "/dashboard/projects" },
|
{ name: "Projects", href: "/dashboard/projects" },
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ const Redis = (
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="pb-10">
|
<div className="pb-10">
|
||||||
<UseKeyboardNav forPage="redis" />
|
<UseKeyboardNav forPage="redis" />
|
||||||
<BreadcrumbSidebar
|
<BreadcrumbSidebar
|
||||||
list={[
|
list={[
|
||||||
{ name: "Projects", href: "/dashboard/projects" },
|
{ name: "Projects", href: "/dashboard/projects" },
|
||||||
|
|||||||
Reference in New Issue
Block a user