diff --git a/.github/update.log b/.github/update.log
index 2d83642387..da40a3940e 100644
--- a/.github/update.log
+++ b/.github/update.log
@@ -683,3 +683,4 @@ Update On Fri Jun 21 20:31:57 CEST 2024
Update On Sat Jun 22 20:28:32 CEST 2024
Update On Sun Jun 23 20:28:19 CEST 2024
Update On Mon Jun 24 20:32:10 CEST 2024
+Update On Tue Jun 25 20:31:14 CEST 2024
diff --git a/clash-nyanpasu/backend/Cargo.lock b/clash-nyanpasu/backend/Cargo.lock
index fa5c57aefe..b5167c450d 100644
--- a/clash-nyanpasu/backend/Cargo.lock
+++ b/clash-nyanpasu/backend/Cargo.lock
@@ -6516,9 +6516,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "uuid"
-version = "1.9.0"
+version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ea73390fe27785838dcbf75b91b1d84799e28f1ce71e6f372a5dc2200c80de5"
+checksum = "5de17fd2f7da591098415cff336e12965a28061ddace43b59cb3c430179c9439"
dependencies = [
"getrandom 0.2.15",
]
diff --git a/clash-nyanpasu/frontend/nyanpasu/package.json b/clash-nyanpasu/frontend/nyanpasu/package.json
index 987218045e..dc4936c742 100644
--- a/clash-nyanpasu/frontend/nyanpasu/package.json
+++ b/clash-nyanpasu/frontend/nyanpasu/package.json
@@ -15,7 +15,7 @@
"@emotion/styled": "11.11.5",
"@generouted/react-router": "1.19.5",
"@juggle/resize-observer": "3.4.0",
- "@material/material-color-utilities": "0.2.7",
+ "@material/material-color-utilities": "0.3.0",
"@mui/icons-material": "5.15.20",
"@mui/lab": "5.0.0-alpha.170",
"@mui/material": "5.15.20",
@@ -40,11 +40,11 @@
"react-hook-form-mui": "7.0.0",
"react-i18next": "14.1.2",
"react-markdown": "9.0.1",
- "react-router-dom": "6.23.1",
+ "react-router-dom": "6.24.0",
"react-transition-group": "4.4.5",
"react-virtuoso": "4.7.10",
"swr": "2.2.5",
- "virtua": "0.31.0"
+ "virtua": "0.32.0"
},
"devDependencies": {
"@emotion/babel-plugin": "11.11.0",
@@ -53,10 +53,12 @@
"@types/react": "18.3.3",
"@types/react-dom": "18.3.0",
"@types/react-transition-group": "4.4.10",
- "@typescript-eslint/eslint-plugin": "7.13.1",
- "@typescript-eslint/parser": "7.13.1",
+ "@typescript-eslint/eslint-plugin": "7.14.1",
+ "@typescript-eslint/parser": "7.14.1",
"@vitejs/plugin-react": "4.3.1",
"@vitejs/plugin-react-swc": "3.7.0",
+ "clsx": "2.1.1",
+ "react-resizable-panels": "2.0.19",
"sass": "1.77.6",
"shiki": "1.9.0",
"tailwindcss-textshadow": "2.1.3",
diff --git a/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.module.scss b/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.module.scss
index 6c04a94202..14007712d5 100644
--- a/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.module.scss
+++ b/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.module.scss
@@ -11,4 +11,18 @@
height: 100%;
background-color: var(--background-color-alpha);
}
+
+ .resize-bar {
+ &:hover {
+ ::after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ width: 1px;
+ content: "";
+ background-color: var(--border-color);
+ }
+ }
+ }
}
diff --git a/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.module.scss.d.ts b/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.module.scss.d.ts
index 1f1eda8994..d6346431f1 100644
--- a/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.module.scss.d.ts
+++ b/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.module.scss.d.ts
@@ -1,5 +1,6 @@
declare const classNames: {
readonly layout: "layout";
readonly container: "container";
+ readonly "resize-bar": "resize-bar";
};
export default classNames;
diff --git a/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.tsx b/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.tsx
index 4bd0c18d5b..239605ddc9 100644
--- a/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.tsx
+++ b/clash-nyanpasu/frontend/nyanpasu/src/components/app/app-container.tsx
@@ -1,10 +1,11 @@
import getSystem from "@/utils/get-system";
-import { LayoutControl } from "../layout/layout-control";
-import AppDrawer from "./app-drawer";
-import { ReactNode } from "react";
-import styles from "./app-container.module.scss";
-import { appWindow } from "@tauri-apps/api/window";
import Paper from "@mui/material/Paper";
+import { appWindow } from "@tauri-apps/api/window";
+import { ReactNode } from "react";
+import { Panel, PanelGroup, PanelResizeHandle } from "react-resizable-panels";
+import { LayoutControl } from "../layout/layout-control";
+import styles from "./app-container.module.scss";
+import AppDrawer from "./app-drawer";
const OS = getSystem();
@@ -15,6 +16,11 @@ export const AppContainer = ({
children?: ReactNode;
isDrawer?: boolean;
}) => {
+ // TODO: move layout sidecar size to nyanpasu config file for better compatibility?
+ // const onLayout = useDebounce(() => {}, {
+ // wait: 100,
+ // });
+
return (