adjust
Some checks are pending
Build / windows (arm64) (push) Waiting to run
Build / windows (ia32) (push) Waiting to run
Build / windows (x64) (push) Waiting to run
Build / linux (arm64) (push) Waiting to run
Build / linux (x64) (push) Waiting to run
Build / macos (arm64) (push) Waiting to run
Build / macos (x64) (push) Waiting to run
Build / updater (push) Blocked by required conditions
Build / aur-release-updater (mihomo-party) (push) Blocked by required conditions
Build / aur-release-updater (mihomo-party-bin) (push) Blocked by required conditions
Build / aur-release-updater (mihomo-party-electron) (push) Blocked by required conditions
Build / aur-release-updater (mihomo-party-electron-bin) (push) Blocked by required conditions
Build / aur-git-updater (push) Waiting to run

This commit is contained in:
pompurin404 2024-08-28 16:20:22 +08:00
parent c2179c94f4
commit cf6642d2e8
No known key found for this signature in database
5 changed files with 320 additions and 328 deletions

View File

@ -23,7 +23,7 @@
"dependencies": {
"@electron-toolkit/preload": "^3.0.1",
"@electron-toolkit/utils": "^3.0.0",
"@mihomo-party/sysproxy": "^2.0.0",
"@mihomo-party/sysproxy": "^2.0.1",
"adm-zip": "^0.5.15",
"axios": "^1.7.5",
"dayjs": "^1.11.13",
@ -40,7 +40,7 @@
"@electron-toolkit/tsconfig": "^1.0.1",
"@nextui-org/react": "^2.4.6",
"@types/adm-zip": "^0.5.5",
"@types/node": "^22.5.0",
"@types/node": "^22.5.1",
"@types/pubsub-js": "^1.8.6",
"@types/react": "^18.3.4",
"@types/react-dom": "^18.3.0",
@ -74,7 +74,7 @@
"swr": "^2.2.5",
"tailwindcss": "^3.4.10",
"tar": "^7.4.3",
"tsx": "^4.18.0",
"tsx": "^4.19.0",
"types-pac": "^1.0.2",
"typescript": "^5.5.4",
"vite": "^5.4.2",

View File

@ -15,8 +15,8 @@ importers:
specifier: ^3.0.0
version: 3.0.0(electron@31.4.0)
'@mihomo-party/sysproxy':
specifier: ^2.0.0
version: 2.0.0
specifier: ^2.0.1
version: 2.0.1
adm-zip:
specifier: ^0.5.15
version: 0.5.15
@ -53,7 +53,7 @@ importers:
version: 2.0.0(eslint@8.57.0)(typescript@5.5.4)
'@electron-toolkit/tsconfig':
specifier: ^1.0.1
version: 1.0.1(@types/node@22.5.0)
version: 1.0.1(@types/node@22.5.1)
'@nextui-org/react':
specifier: ^2.4.6
version: 2.4.6(@types/react@18.3.4)(framer-motion@11.3.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.10)
@ -61,8 +61,8 @@ importers:
specifier: ^0.5.5
version: 0.5.5
'@types/node':
specifier: ^22.5.0
version: 22.5.0
specifier: ^22.5.1
version: 22.5.1
'@types/pubsub-js':
specifier: ^1.8.6
version: 1.8.6
@ -77,7 +77,7 @@ importers:
version: 8.5.12
'@vitejs/plugin-react':
specifier: ^4.3.1
version: 4.3.1(vite@5.4.2(@types/node@22.5.0))
version: 4.3.1(vite@5.4.2(@types/node@22.5.1))
apexcharts:
specifier: ^3.52.0
version: 3.52.0
@ -92,7 +92,7 @@ importers:
version: 25.0.5(electron-builder-squirrel-windows@25.0.4(dmg-builder@25.0.5))
electron-vite:
specifier: ^2.3.0
version: 2.3.0(vite@5.4.2(@types/node@22.5.0))
version: 2.3.0(vite@5.4.2(@types/node@22.5.1))
electron-window-state:
specifier: ^5.0.3
version: 5.0.3
@ -163,8 +163,8 @@ importers:
specifier: ^7.4.3
version: 7.4.3
tsx:
specifier: ^4.18.0
version: 4.18.0
specifier: ^4.19.0
version: 4.19.0
types-pac:
specifier: ^1.0.2
version: 1.0.2
@ -173,7 +173,7 @@ importers:
version: 5.5.4
vite:
specifier: ^5.4.2
version: 5.4.2(@types/node@22.5.0)
version: 5.4.2(@types/node@22.5.1)
vite-plugin-monaco-editor:
specifier: ^1.1.0
version: 1.1.0(monaco-editor@0.50.0)
@ -751,50 +751,50 @@ packages:
resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==}
engines: {node: '>= 10.0.0'}
'@mihomo-party/sysproxy-darwin-arm64@2.0.0':
resolution: {integrity: sha512-pq/uCNdEO8VX5V/4i8j4sP7cex/2eEWwfCxUUEk1GdVVtLNjSsQVXfr3AWjD33yid2RjGgnu3xdqxx1o/8VLiA==}
'@mihomo-party/sysproxy-darwin-arm64@2.0.1':
resolution: {integrity: sha512-w1Alq2bAsG0we+NT2LgzyrQ08uyYFEOGwZ1Be6IXWZ994b1KW2PnCLEil7+SkwjX9WgBSM2ebogYS7HynIM3RA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@mihomo-party/sysproxy-darwin-x64@2.0.0':
resolution: {integrity: sha512-JZ4aOqqpzpKR4htzYnIoLxAjSC7fwj2SGp828He4sj6Vpam6oygAuIIcjkrhfN0TLyAGW74Jc9cxwK5LuGTy6w==}
'@mihomo-party/sysproxy-darwin-x64@2.0.1':
resolution: {integrity: sha512-QSnUhGupDg87NVV2z8sTI1RpIbPuedDhAG7KLL7K6qN5+gfvhbU/uF88uRramEoEdQrPGxKiqII7miNCbIr5ag==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@mihomo-party/sysproxy-linux-arm64-gnu@2.0.0':
resolution: {integrity: sha512-T7IFrMcHndQj/truYqzxl9MGuwBcejpCMklWOSskRSM/LfuKSEFsEky2/e9S0eC16BfDvpLJlQYUoeFDRYIjaQ==}
'@mihomo-party/sysproxy-linux-arm64-gnu@2.0.1':
resolution: {integrity: sha512-tnaZJJvbgg8v5c74kYQVzwOFs61hTFdUmAe5kVq7IuMJ0DcGikYVEXkY/TFA7AnBqI6Oy8Ja2Tm1LWKDsSVooA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@mihomo-party/sysproxy-linux-x64-gnu@2.0.0':
resolution: {integrity: sha512-bOx2YoqVH89aWjK1D9TrvMtNavBVHa7buhoMl4VqeHmkwgS9yqFtRuM6oa3vHO8JhgqVwi2cdZhirR+aQrFzXg==}
'@mihomo-party/sysproxy-linux-x64-gnu@2.0.1':
resolution: {integrity: sha512-zIPJ+UppT/YQdSP+3dNpN8aQeJhbU4C857Mo9eMhARG7Z6afQXsYR96Jw6PRe6YeOmB1LUAzTrpKuSdPJwWOxA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@mihomo-party/sysproxy-win32-arm64-msvc@2.0.0':
resolution: {integrity: sha512-hmZG864Ft8Wzj0Drga2oG+y0CR1B28U+XM9VTNBCNkz552Tdr5Dcx/3zcBJrUR/YcRC9UJi4B/EXuwH+gq16wA==}
'@mihomo-party/sysproxy-win32-arm64-msvc@2.0.1':
resolution: {integrity: sha512-sPuDb3F7feHux1cFasgCF1+4SQPyntGZCeafdxPCrZvGouHePCplIYE0sMm/h/ikPmeQbDpSe5YNZvHdD+Yw/w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@mihomo-party/sysproxy-win32-ia32-msvc@2.0.0':
resolution: {integrity: sha512-h0llf/iP5EXfGM6hkc9i4sUgxwu8O6dXEpWQIxsfDgs3Qt7/W4wN8XB/LB4TYHeY3W8TovC7w1ha5BzL5LQFzA==}
'@mihomo-party/sysproxy-win32-ia32-msvc@2.0.1':
resolution: {integrity: sha512-RyTsLdwDPbPPfsIFw0NGQmUjQe91SzKaL7E8yT998UYNe/UiZ2+tdY2Yqf70RyQAjbWwMNonc4ozf0XbqJz+qQ==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
'@mihomo-party/sysproxy-win32-x64-msvc@2.0.0':
resolution: {integrity: sha512-thmeCP9sem+lcxsqamimcBAhsET+j5TlTZfOEYY0jeU03sXCOXbSbbusOHiwseiFpDm9N065H0ldsD1d4Wj5Ow==}
'@mihomo-party/sysproxy-win32-x64-msvc@2.0.1':
resolution: {integrity: sha512-nww1MZGilXSMGDWc8V3ogTI5JMf5AnEY9CSOZZD+EjzPCCbn19IqxnhWcEI9Ozml1EV7JnorfAPAen0ocRbdww==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@mihomo-party/sysproxy@2.0.0':
resolution: {integrity: sha512-UPlsb62XuWwatnrqgjFLayh0OQw07BlecS/Ggqo8dZ+t5BVhWxYyfLqEHNGtaYnBSa+gx50sct5j1i41TnJthg==}
'@mihomo-party/sysproxy@2.0.1':
resolution: {integrity: sha512-JLSuFgyJKXwadcClaSqPeZB5XRkc62SlH84143bfupRxXvCjq1Tz0/YONoqHQF5NJmrNDqYgKqhX3J28WiCtjA==}
engines: {node: '>= 10'}
'@nextui-org/accordion@2.0.38':
@ -1869,83 +1869,83 @@ packages:
resolution: {integrity: sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==}
engines: {node: '>=14.0.0'}
'@rollup/rollup-android-arm-eabi@4.21.0':
resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==}
'@rollup/rollup-android-arm-eabi@4.21.1':
resolution: {integrity: sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg==}
cpu: [arm]
os: [android]
'@rollup/rollup-android-arm64@4.21.0':
resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==}
'@rollup/rollup-android-arm64@4.21.1':
resolution: {integrity: sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g==}
cpu: [arm64]
os: [android]
'@rollup/rollup-darwin-arm64@4.21.0':
resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==}
'@rollup/rollup-darwin-arm64@4.21.1':
resolution: {integrity: sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA==}
cpu: [arm64]
os: [darwin]
'@rollup/rollup-darwin-x64@4.21.0':
resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==}
'@rollup/rollup-darwin-x64@4.21.1':
resolution: {integrity: sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg==}
cpu: [x64]
os: [darwin]
'@rollup/rollup-linux-arm-gnueabihf@4.21.0':
resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==}
'@rollup/rollup-linux-arm-gnueabihf@4.21.1':
resolution: {integrity: sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.21.0':
resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==}
'@rollup/rollup-linux-arm-musleabihf@4.21.1':
resolution: {integrity: sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.21.0':
resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==}
'@rollup/rollup-linux-arm64-gnu@4.21.1':
resolution: {integrity: sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-musl@4.21.0':
resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==}
'@rollup/rollup-linux-arm64-musl@4.21.1':
resolution: {integrity: sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.21.0':
resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==}
'@rollup/rollup-linux-powerpc64le-gnu@4.21.1':
resolution: {integrity: sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.21.0':
resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==}
'@rollup/rollup-linux-riscv64-gnu@4.21.1':
resolution: {integrity: sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.21.0':
resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==}
'@rollup/rollup-linux-s390x-gnu@4.21.1':
resolution: {integrity: sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==}
cpu: [s390x]
os: [linux]
'@rollup/rollup-linux-x64-gnu@4.21.0':
resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==}
'@rollup/rollup-linux-x64-gnu@4.21.1':
resolution: {integrity: sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==}
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-musl@4.21.0':
resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==}
'@rollup/rollup-linux-x64-musl@4.21.1':
resolution: {integrity: sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==}
cpu: [x64]
os: [linux]
'@rollup/rollup-win32-arm64-msvc@4.21.0':
resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==}
'@rollup/rollup-win32-arm64-msvc@4.21.1':
resolution: {integrity: sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==}
cpu: [arm64]
os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.21.0':
resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==}
'@rollup/rollup-win32-ia32-msvc@4.21.1':
resolution: {integrity: sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw==}
cpu: [ia32]
os: [win32]
'@rollup/rollup-win32-x64-msvc@4.21.0':
resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==}
'@rollup/rollup-win32-x64-msvc@4.21.1':
resolution: {integrity: sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg==}
cpu: [x64]
os: [win32]
@ -2015,11 +2015,11 @@ packages:
'@types/ms@0.7.34':
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
'@types/node@20.16.1':
resolution: {integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==}
'@types/node@20.16.2':
resolution: {integrity: sha512-91s/n4qUPV/wg8eE9KHYW1kouTfDk2FPGjXbBMfRWP/2vg1rCXNQL1OCabwGs0XSdukuK+MwCDXE30QpSeMUhQ==}
'@types/node@22.5.0':
resolution: {integrity: sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==}
'@types/node@22.5.1':
resolution: {integrity: sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==}
'@types/plist@3.0.5':
resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==}
@ -2396,8 +2396,8 @@ packages:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
caniuse-lite@1.0.30001651:
resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==}
caniuse-lite@1.0.30001653:
resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==}
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@ -3586,8 +3586,8 @@ packages:
mdast-util-mdx-expression@2.0.0:
resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==}
mdast-util-mdx-jsx@3.1.2:
resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==}
mdast-util-mdx-jsx@3.1.3:
resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==}
mdast-util-mdxjs-esm@2.0.1:
resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
@ -4319,8 +4319,8 @@ packages:
resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
engines: {node: '>=8.0'}
rollup@4.21.0:
resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==}
rollup@4.21.1:
resolution: {integrity: sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@ -4643,8 +4643,8 @@ packages:
tslib@2.7.0:
resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
tsx@4.18.0:
resolution: {integrity: sha512-a1jaKBSVQkd6yEc1/NI7G6yHFfefIcuf3QJST7ZEyn4oQnxLYrZR5uZAM8UrwUa3Ge8suiZHcNS1gNrEvmobqg==}
tsx@4.19.0:
resolution: {integrity: sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==}
engines: {node: '>=18.0.0'}
hasBin: true
@ -4707,9 +4707,6 @@ packages:
unist-util-position@5.0.0:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
unist-util-remove-position@5.0.0:
resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
unist-util-stringify-position@4.0.0:
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
@ -4804,8 +4801,8 @@ packages:
vfile-message@4.0.2:
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
vfile@6.0.2:
resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==}
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
vite-plugin-monaco-editor@1.1.0:
resolution: {integrity: sha512-IvtUqZotrRoVqwT0PBBDIZPNraya3BxN/bfcNfnxZ5rkJiGcNtO5eAOWWSgT7zullIAEqQwxMU83yL9J5k7gww==}
@ -5166,9 +5163,9 @@ snapshots:
dependencies:
electron: 31.4.0
'@electron-toolkit/tsconfig@1.0.1(@types/node@22.5.0)':
'@electron-toolkit/tsconfig@1.0.1(@types/node@22.5.1)':
dependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
'@electron-toolkit/utils@3.0.0(electron@31.4.0)':
dependencies:
@ -5507,36 +5504,36 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@mihomo-party/sysproxy-darwin-arm64@2.0.0':
'@mihomo-party/sysproxy-darwin-arm64@2.0.1':
optional: true
'@mihomo-party/sysproxy-darwin-x64@2.0.0':
'@mihomo-party/sysproxy-darwin-x64@2.0.1':
optional: true
'@mihomo-party/sysproxy-linux-arm64-gnu@2.0.0':
'@mihomo-party/sysproxy-linux-arm64-gnu@2.0.1':
optional: true
'@mihomo-party/sysproxy-linux-x64-gnu@2.0.0':
'@mihomo-party/sysproxy-linux-x64-gnu@2.0.1':
optional: true
'@mihomo-party/sysproxy-win32-arm64-msvc@2.0.0':
'@mihomo-party/sysproxy-win32-arm64-msvc@2.0.1':
optional: true
'@mihomo-party/sysproxy-win32-ia32-msvc@2.0.0':
'@mihomo-party/sysproxy-win32-ia32-msvc@2.0.1':
optional: true
'@mihomo-party/sysproxy-win32-x64-msvc@2.0.0':
'@mihomo-party/sysproxy-win32-x64-msvc@2.0.1':
optional: true
'@mihomo-party/sysproxy@2.0.0':
'@mihomo-party/sysproxy@2.0.1':
optionalDependencies:
'@mihomo-party/sysproxy-darwin-arm64': 2.0.0
'@mihomo-party/sysproxy-darwin-x64': 2.0.0
'@mihomo-party/sysproxy-linux-arm64-gnu': 2.0.0
'@mihomo-party/sysproxy-linux-x64-gnu': 2.0.0
'@mihomo-party/sysproxy-win32-arm64-msvc': 2.0.0
'@mihomo-party/sysproxy-win32-ia32-msvc': 2.0.0
'@mihomo-party/sysproxy-win32-x64-msvc': 2.0.0
'@mihomo-party/sysproxy-darwin-arm64': 2.0.1
'@mihomo-party/sysproxy-darwin-x64': 2.0.1
'@mihomo-party/sysproxy-linux-arm64-gnu': 2.0.1
'@mihomo-party/sysproxy-linux-x64-gnu': 2.0.1
'@mihomo-party/sysproxy-win32-arm64-msvc': 2.0.1
'@mihomo-party/sysproxy-win32-ia32-msvc': 2.0.1
'@mihomo-party/sysproxy-win32-x64-msvc': 2.0.1
'@nextui-org/accordion@2.0.38(@nextui-org/system@2.2.5(@nextui-org/theme@2.2.9(tailwindcss@3.4.10))(framer-motion@11.3.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@nextui-org/theme@2.2.9(tailwindcss@3.4.10))(framer-motion@11.3.30(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
@ -6635,7 +6632,7 @@ snapshots:
dependencies:
'@react-aria/interactions': 3.21.3(react@18.3.1)
'@react-aria/utils': 3.24.1(react@18.3.1)
'@react-types/shared': 3.23.1(react@18.3.1)
'@react-types/shared': 3.24.1(react@18.3.1)
'@swc/helpers': 0.5.12
clsx: 2.1.1
react: 18.3.1
@ -6713,7 +6710,7 @@ snapshots:
dependencies:
'@react-aria/ssr': 3.9.5(react@18.3.1)
'@react-aria/utils': 3.24.1(react@18.3.1)
'@react-types/shared': 3.23.1(react@18.3.1)
'@react-types/shared': 3.24.1(react@18.3.1)
'@swc/helpers': 0.5.12
react: 18.3.1
@ -7481,52 +7478,52 @@ snapshots:
'@remix-run/router@1.19.1': {}
'@rollup/rollup-android-arm-eabi@4.21.0':
'@rollup/rollup-android-arm-eabi@4.21.1':
optional: true
'@rollup/rollup-android-arm64@4.21.0':
'@rollup/rollup-android-arm64@4.21.1':
optional: true
'@rollup/rollup-darwin-arm64@4.21.0':
'@rollup/rollup-darwin-arm64@4.21.1':
optional: true
'@rollup/rollup-darwin-x64@4.21.0':
'@rollup/rollup-darwin-x64@4.21.1':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.21.0':
'@rollup/rollup-linux-arm-gnueabihf@4.21.1':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.21.0':
'@rollup/rollup-linux-arm-musleabihf@4.21.1':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.21.0':
'@rollup/rollup-linux-arm64-gnu@4.21.1':
optional: true
'@rollup/rollup-linux-arm64-musl@4.21.0':
'@rollup/rollup-linux-arm64-musl@4.21.1':
optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.21.0':
'@rollup/rollup-linux-powerpc64le-gnu@4.21.1':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.21.0':
'@rollup/rollup-linux-riscv64-gnu@4.21.1':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.21.0':
'@rollup/rollup-linux-s390x-gnu@4.21.1':
optional: true
'@rollup/rollup-linux-x64-gnu@4.21.0':
'@rollup/rollup-linux-x64-gnu@4.21.1':
optional: true
'@rollup/rollup-linux-x64-musl@4.21.0':
'@rollup/rollup-linux-x64-musl@4.21.1':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.21.0':
'@rollup/rollup-win32-arm64-msvc@4.21.1':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.21.0':
'@rollup/rollup-win32-ia32-msvc@4.21.1':
optional: true
'@rollup/rollup-win32-x64-msvc@4.21.0':
'@rollup/rollup-win32-x64-msvc@4.21.1':
optional: true
'@sindresorhus/is@4.6.0': {}
@ -7543,7 +7540,7 @@ snapshots:
'@types/adm-zip@0.5.5':
dependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
'@types/babel__core@7.20.5':
dependencies:
@ -7570,7 +7567,7 @@ snapshots:
dependencies:
'@types/http-cache-semantics': 4.0.4
'@types/keyv': 3.1.4
'@types/node': 22.5.0
'@types/node': 22.5.1
'@types/responselike': 1.0.3
'@types/debug@4.1.12':
@ -7585,7 +7582,7 @@ snapshots:
'@types/fs-extra@9.0.13':
dependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
'@types/hast@3.0.4':
dependencies:
@ -7595,7 +7592,7 @@ snapshots:
'@types/keyv@3.1.4':
dependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
'@types/lodash.debounce@4.0.9':
dependencies:
@ -7609,17 +7606,17 @@ snapshots:
'@types/ms@0.7.34': {}
'@types/node@20.16.1':
'@types/node@20.16.2':
dependencies:
undici-types: 6.19.8
'@types/node@22.5.0':
'@types/node@22.5.1':
dependencies:
undici-types: 6.19.8
'@types/plist@3.0.5':
dependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
xmlbuilder: 15.1.1
optional: true
@ -7638,7 +7635,7 @@ snapshots:
'@types/responselike@1.0.3':
dependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
'@types/unist@2.0.11': {}
@ -7649,11 +7646,11 @@ snapshots:
'@types/ws@8.5.12':
dependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
'@types/yauzl@2.10.3':
dependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
optional: true
'@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)':
@ -7739,14 +7736,14 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
'@vitejs/plugin-react@4.3.1(vite@5.4.2(@types/node@22.5.0))':
'@vitejs/plugin-react@4.3.1(vite@5.4.2(@types/node@22.5.1))':
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
vite: 5.4.2(@types/node@22.5.0)
vite: 5.4.2(@types/node@22.5.1)
transitivePeerDependencies:
- supports-color
@ -8019,7 +8016,7 @@ snapshots:
autoprefixer@10.4.20(postcss@8.4.41):
dependencies:
browserslist: 4.23.3
caniuse-lite: 1.0.30001651
caniuse-lite: 1.0.30001653
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.0.1
@ -8078,7 +8075,7 @@ snapshots:
browserslist@4.23.3:
dependencies:
caniuse-lite: 1.0.30001651
caniuse-lite: 1.0.30001653
electron-to-chromium: 1.5.13
node-releases: 2.0.18
update-browserslist-db: 1.1.0(browserslist@4.23.3)
@ -8171,7 +8168,7 @@ snapshots:
camelcase-css@2.0.1: {}
caniuse-lite@1.0.30001651: {}
caniuse-lite@1.0.30001653: {}
ccount@2.0.1: {}
@ -8511,7 +8508,7 @@ snapshots:
electron-to-chromium@1.5.13: {}
electron-vite@2.3.0(vite@5.4.2(@types/node@22.5.0)):
electron-vite@2.3.0(vite@5.4.2(@types/node@22.5.1)):
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2)
@ -8519,7 +8516,7 @@ snapshots:
esbuild: 0.21.5
magic-string: 0.30.11
picocolors: 1.0.1
vite: 5.4.2(@types/node@22.5.0)
vite: 5.4.2(@types/node@22.5.1)
transitivePeerDependencies:
- supports-color
@ -8531,7 +8528,7 @@ snapshots:
electron@31.4.0:
dependencies:
'@electron/get': 2.0.3
'@types/node': 20.16.1
'@types/node': 20.16.2
extract-zip: 2.0.1
transitivePeerDependencies:
- supports-color
@ -9127,7 +9124,7 @@ snapshots:
estree-util-is-identifier-name: 3.0.0
hast-util-whitespace: 3.0.0
mdast-util-mdx-expression: 2.0.0
mdast-util-mdx-jsx: 3.1.2
mdast-util-mdx-jsx: 3.1.3
mdast-util-mdxjs-esm: 2.0.1
property-information: 6.5.0
space-separated-tokens: 2.0.2
@ -9572,7 +9569,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
mdast-util-mdx-jsx@3.1.2:
mdast-util-mdx-jsx@3.1.3:
dependencies:
'@types/estree-jsx': 1.0.5
'@types/hast': 3.0.4
@ -9584,7 +9581,6 @@ snapshots:
mdast-util-to-markdown: 2.1.0
parse-entities: 4.0.1
stringify-entities: 4.0.4
unist-util-remove-position: 5.0.0
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
transitivePeerDependencies:
@ -9616,7 +9612,7 @@ snapshots:
trim-lines: 3.0.1
unist-util-position: 5.0.0
unist-util-visit: 5.0.0
vfile: 6.0.2
vfile: 6.0.3
mdast-util-to-markdown@2.1.0:
dependencies:
@ -10222,7 +10218,7 @@ snapshots:
remark-rehype: 11.1.0
unified: 11.0.5
unist-util-visit: 5.0.0
vfile: 6.0.2
vfile: 6.0.3
transitivePeerDependencies:
- supports-color
@ -10370,7 +10366,7 @@ snapshots:
'@types/mdast': 4.0.4
mdast-util-to-hast: 13.2.0
unified: 11.0.5
vfile: 6.0.2
vfile: 6.0.3
require-directory@2.1.1: {}
@ -10429,26 +10425,26 @@ snapshots:
sprintf-js: 1.1.3
optional: true
rollup@4.21.0:
rollup@4.21.1:
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.21.0
'@rollup/rollup-android-arm64': 4.21.0
'@rollup/rollup-darwin-arm64': 4.21.0
'@rollup/rollup-darwin-x64': 4.21.0
'@rollup/rollup-linux-arm-gnueabihf': 4.21.0
'@rollup/rollup-linux-arm-musleabihf': 4.21.0
'@rollup/rollup-linux-arm64-gnu': 4.21.0
'@rollup/rollup-linux-arm64-musl': 4.21.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.21.0
'@rollup/rollup-linux-riscv64-gnu': 4.21.0
'@rollup/rollup-linux-s390x-gnu': 4.21.0
'@rollup/rollup-linux-x64-gnu': 4.21.0
'@rollup/rollup-linux-x64-musl': 4.21.0
'@rollup/rollup-win32-arm64-msvc': 4.21.0
'@rollup/rollup-win32-ia32-msvc': 4.21.0
'@rollup/rollup-win32-x64-msvc': 4.21.0
'@rollup/rollup-android-arm-eabi': 4.21.1
'@rollup/rollup-android-arm64': 4.21.1
'@rollup/rollup-darwin-arm64': 4.21.1
'@rollup/rollup-darwin-x64': 4.21.1
'@rollup/rollup-linux-arm-gnueabihf': 4.21.1
'@rollup/rollup-linux-arm-musleabihf': 4.21.1
'@rollup/rollup-linux-arm64-gnu': 4.21.1
'@rollup/rollup-linux-arm64-musl': 4.21.1
'@rollup/rollup-linux-powerpc64le-gnu': 4.21.1
'@rollup/rollup-linux-riscv64-gnu': 4.21.1
'@rollup/rollup-linux-s390x-gnu': 4.21.1
'@rollup/rollup-linux-x64-gnu': 4.21.1
'@rollup/rollup-linux-x64-musl': 4.21.1
'@rollup/rollup-win32-arm64-msvc': 4.21.1
'@rollup/rollup-win32-ia32-msvc': 4.21.1
'@rollup/rollup-win32-x64-msvc': 4.21.1
fsevents: 2.3.3
run-parallel@1.2.0:
@ -10837,7 +10833,7 @@ snapshots:
tslib@2.7.0: {}
tsx@4.18.0:
tsx@4.19.0:
dependencies:
esbuild: 0.23.1
get-tsconfig: 4.7.6
@ -10906,7 +10902,7 @@ snapshots:
extend: 3.0.2
is-plain-obj: 4.1.0
trough: 2.2.0
vfile: 6.0.2
vfile: 6.0.3
unique-filename@2.0.1:
dependencies:
@ -10924,11 +10920,6 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
unist-util-remove-position@5.0.0:
dependencies:
'@types/unist': 3.0.3
unist-util-visit: 5.0.0
unist-util-stringify-position@4.0.0:
dependencies:
'@types/unist': 3.0.3
@ -11017,23 +11008,22 @@ snapshots:
'@types/unist': 3.0.3
unist-util-stringify-position: 4.0.0
vfile@6.0.2:
vfile@6.0.3:
dependencies:
'@types/unist': 3.0.3
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
vite-plugin-monaco-editor@1.1.0(monaco-editor@0.50.0):
dependencies:
monaco-editor: 0.50.0
vite@5.4.2(@types/node@22.5.0):
vite@5.4.2(@types/node@22.5.1):
dependencies:
esbuild: 0.21.5
postcss: 8.4.41
rollup: 4.21.0
rollup: 4.21.1
optionalDependencies:
'@types/node': 22.5.0
'@types/node': 22.5.1
fsevents: 2.3.3
vscode-jsonrpc@8.2.0: {}

View File

@ -69,24 +69,23 @@ const Logs: React.FC = () => {
</div>
<Divider />
</div>
<Virtuoso
autoFocus
ref={virtuosoRef}
style={{ height: 'calc(100vh - 100px)' }}
data={filteredLogs}
totalCount={filteredLogs.length}
itemContent={(i, log) => {
return (
<LogItem
index={i}
key={log.payload + i}
time={log.time}
type={log.type}
payload={log.payload}
/>
)
}}
/>
<div className="h-[calc(100vh-100px)] mt-[1px]">
<Virtuoso
ref={virtuosoRef}
data={filteredLogs}
itemContent={(i, log) => {
return (
<LogItem
index={i}
key={log.payload + i}
time={log.time}
type={log.type}
payload={log.payload}
/>
)
}}
/>
</div>
</BasePage>
)
}

View File

@ -152,143 +152,145 @@ const Proxies: React.FC = () => {
</div>
}
>
<GroupedVirtuoso
ref={virtuosoRef}
style={{ height: 'calc(100vh - 50px)' }}
groupCounts={groupCounts}
groupContent={(index) => {
return groups[index] ? (
<div
className={`w-full pt-2 ${index === groupCounts.length - 1 && !isOpen[index] ? 'pb-2' : ''} px-2`}
>
<Card
isPressable
fullWidth
onPress={() => {
setIsOpen((prev) => {
const newOpen = [...prev]
newOpen[index] = !prev[index]
return newOpen
})
}}
<div className="h-[calc(100vh-50px)]">
<GroupedVirtuoso
ref={virtuosoRef}
groupCounts={groupCounts}
groupContent={(index) => {
return groups[index] ? (
<div
className={`w-full pt-2 ${index === groupCounts.length - 1 && !isOpen[index] ? 'pb-2' : ''} px-2`}
>
<CardBody className="w-full">
<div className="flex justify-between">
<div className="flex text-ellipsis overflow-hidden whitespace-nowrap">
{groups[index].icon ? (
<Avatar
className="bg-transparent mr-2"
size="sm"
radius="sm"
src={groups[index].icon}
/>
) : null}
<div className="text-ellipsis overflow-hidden whitespace-nowrap">
<div className="inline flag-emoji h-[32px] text-md leading-[32px]">
{groups[index].name}
<Card
isPressable
fullWidth
onPress={() => {
setIsOpen((prev) => {
const newOpen = [...prev]
newOpen[index] = !prev[index]
return newOpen
})
}}
>
<CardBody className="w-full">
<div className="flex justify-between">
<div className="flex text-ellipsis overflow-hidden whitespace-nowrap">
{groups[index].icon ? (
<Avatar
className="bg-transparent mr-2"
size="sm"
radius="sm"
src={groups[index].icon}
/>
) : null}
<div className="text-ellipsis overflow-hidden whitespace-nowrap">
<div className="inline flag-emoji h-[32px] text-md leading-[32px]">
{groups[index].name}
</div>
{proxyDisplayMode === 'full' && (
<div className="inline ml-2 text-sm text-default-500">
{groups[index].type}
</div>
)}
{proxyDisplayMode === 'full' && (
<div className="inline flag-emoji ml-2 text-sm text-default-500">
{groups[index].now}
</div>
)}
</div>
</div>
<div className="flex">
{proxyDisplayMode === 'full' && (
<div className="inline ml-2 text-sm text-default-500">
{groups[index].type}
</div>
)}
{proxyDisplayMode === 'full' && (
<div className="inline flag-emoji ml-2 text-sm text-default-500">
{groups[index].now}
</div>
<Chip size="sm" className="my-1 mr-2">
{groups[index].all.length}
</Chip>
)}
<Button
title="定位到当前节点"
variant="light"
size="sm"
isIconOnly
onPress={() => {
if (!isOpen[index]) return
let i = 0
for (let j = 0; j < index; j++) {
i += groupCounts[j]
}
i += Math.floor(
allProxies[index].findIndex(
(proxy) => proxy.name === groups[index].now
) / cols
)
virtuosoRef.current?.scrollToIndex({
index: Math.floor(i),
align: 'start'
})
}}
>
<FaLocationCrosshairs className="text-lg text-default-500" />
</Button>
<Button
title="延迟测试"
variant="light"
size="sm"
isIconOnly
onPress={() => {
onGroupDelay(groups[index].name, groups[index].testUrl)
}}
>
<MdOutlineSpeed className="text-lg text-default-500" />
</Button>
<IoIosArrowBack
className={`transition duration-200 ml-2 h-[32px] text-lg text-default-500 ${isOpen[index] ? '-rotate-90' : ''}`}
/>
</div>
</div>
<div className="flex">
{proxyDisplayMode === 'full' && (
<Chip size="sm" className="my-1 mr-2">
{groups[index].all.length}
</Chip>
)}
<Button
title="定位到当前节点"
variant="light"
size="sm"
isIconOnly
onPress={() => {
if (!isOpen[index]) return
let i = 0
for (let j = 0; j < index; j++) {
i += groupCounts[j]
}
i += Math.floor(
allProxies[index].findIndex(
(proxy) => proxy.name === groups[index].now
) / cols
)
virtuosoRef.current?.scrollToIndex({
index: Math.floor(i),
align: 'start'
})
}}
>
<FaLocationCrosshairs className="text-lg text-default-500" />
</Button>
<Button
title="延迟测试"
variant="light"
size="sm"
isIconOnly
onPress={() => {
onGroupDelay(groups[index].name, groups[index].testUrl)
}}
>
<MdOutlineSpeed className="text-lg text-default-500" />
</Button>
<IoIosArrowBack
className={`transition duration-200 ml-2 h-[32px] text-lg text-default-500 ${isOpen[index] ? '-rotate-90' : ''}`}
/>
</div>
</div>
</CardBody>
</Card>
</div>
) : (
<div>Never See This</div>
)
}}
itemContent={(index, groupIndex) => {
let innerIndex = index
groupCounts.slice(0, groupIndex).forEach((count) => {
innerIndex -= count
})
return allProxies[groupIndex] ? (
<div
style={
proxyCols !== 'auto'
? { gridTemplateColumns: `repeat(${proxyCols}, minmax(0, 1fr))` }
: {}
}
className={`grid ${proxyCols === 'auto' ? 'sm:grid-cols-2 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5' : ''} gap-2 pt-2 mx-2`}
>
{Array.from({ length: cols }).map((_, i) => {
if (!allProxies[groupIndex][innerIndex * cols + i]) return null
return (
<ProxyItem
key={allProxies[groupIndex][innerIndex * cols + i].name}
mutateProxies={mutate}
onProxyDelay={onProxyDelay}
onSelect={onChangeProxy}
proxy={allProxies[groupIndex][innerIndex * cols + i]}
group={groups[groupIndex]}
proxyDisplayMode={proxyDisplayMode}
selected={
allProxies[groupIndex][innerIndex * cols + i]?.name === groups[groupIndex].now
}
/>
)
})}
</div>
) : (
<div>Never See This</div>
)
}}
/>
</CardBody>
</Card>
</div>
) : (
<div>Never See This</div>
)
}}
itemContent={(index, groupIndex) => {
let innerIndex = index
groupCounts.slice(0, groupIndex).forEach((count) => {
innerIndex -= count
})
return allProxies[groupIndex] ? (
<div
style={
proxyCols !== 'auto'
? { gridTemplateColumns: `repeat(${proxyCols}, minmax(0, 1fr))` }
: {}
}
className={`grid ${proxyCols === 'auto' ? 'sm:grid-cols-2 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5' : ''} gap-2 pt-2 mx-2`}
>
{Array.from({ length: cols }).map((_, i) => {
if (!allProxies[groupIndex][innerIndex * cols + i]) return null
return (
<ProxyItem
key={allProxies[groupIndex][innerIndex * cols + i].name}
mutateProxies={mutate}
onProxyDelay={onProxyDelay}
onSelect={onChangeProxy}
proxy={allProxies[groupIndex][innerIndex * cols + i]}
group={groups[groupIndex]}
proxyDisplayMode={proxyDisplayMode}
selected={
allProxies[groupIndex][innerIndex * cols + i]?.name ===
groups[groupIndex].now
}
/>
)
})}
</div>
) : (
<div>Never See This</div>
)
}}
/>
</div>
</BasePage>
)
}

View File

@ -35,19 +35,20 @@ const Rules: React.FC = () => {
</div>
<Divider />
</div>
<Virtuoso
style={{ height: 'calc(100vh - 100px)', marginTop: '1px' }}
data={filteredRules}
itemContent={(i, rule) => (
<RuleItem
index={i}
type={rule.type}
payload={rule.payload}
proxy={rule.proxy}
size={rule.size}
/>
)}
/>
<div className="h-[calc(100vh-100px)] mt-[1px]">
<Virtuoso
data={filteredRules}
itemContent={(i, rule) => (
<RuleItem
index={i}
type={rule.type}
payload={rule.payload}
proxy={rule.proxy}
size={rule.size}
/>
)}
/>
</div>
</BasePage>
)
}