Chore: update dependencies

This commit is contained in:
Dreamacro 2022-07-26 10:30:25 +08:00
parent 634b19ab4e
commit ae31d8097a
6 changed files with 907 additions and 934 deletions

View File

@ -26,43 +26,44 @@
},
"devDependencies": {
"@types/lodash-es": "^4.17.6",
"@types/node": "^18.0.0",
"@types/react": "^18.0.14",
"@types/react-dom": "^18.0.5",
"@types/node": "^18.6.1",
"@types/react": "^18.0.15",
"@types/react-dom": "^18.0.6",
"@types/react-virtualized-auto-sizer": "^1.0.1",
"@types/react-window": "^1.8.5",
"@typescript-eslint/eslint-plugin": "^5.30.0",
"@typescript-eslint/parser": "^5.30.0",
"@vitejs/plugin-react": "^1.3.2",
"eslint": "^8.18.0",
"@typescript-eslint/eslint-plugin": "^5.31.0",
"@typescript-eslint/parser": "^5.31.0",
"@vitejs/plugin-react": "^2.0.0",
"eslint": "^8.20.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^17.0.0",
"eslint-config-standard-with-typescript": "^21.0.1",
"eslint-import-resolver-typescript": "^3.1.1",
"eslint-config-standard-with-typescript": "^22.0.0",
"eslint-import-resolver-typescript": "^3.3.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-n": "^15.2.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-react-hooks": "^4.6.0",
"sass": "^1.53.0",
"type-fest": "^2.14.0",
"sass": "^1.54.0",
"type-fest": "^2.17.0",
"typescript": "^4.7.4",
"vite": "^2.9.13",
"vite-plugin-pwa": "^0.12.0",
"vite-plugin-windicss": "^1.8.5",
"vite": "^3.0.3",
"vite-plugin-pwa": "^0.12.3",
"vite-plugin-windicss": "^1.8.7",
"vite-tsconfig-paths": "^3.5.0",
"windicss": "^3.5.5"
"windicss": "^3.5.6"
},
"dependencies": {
"@react-hookz/web": "^14.3.0",
"@tanstack/react-table": "^8.0.6",
"@react-hookz/web": "^15.0.1",
"@tanstack/react-table": "^8.3.3",
"axios": "^0.27.2",
"classnames": "^2.3.1",
"dayjs": "^1.11.3",
"dayjs": "^1.11.4",
"eventemitter3": "^4.0.7",
"immer": "^9.0.15",
"jotai": "^1.7.2",
"jotai": "^1.7.6",
"lodash-es": "^4.17.21",
"neverthrow": "^4.3.1",
"neverthrow": "^4.4.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.3.0",

1759
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
import { useIntersectionObserver, useSyncedRef, useUnmountEffect } from '@react-hookz/web/esm'
import { useTableInstance, createTable, getSortedRowModel, getFilteredRowModel, getCoreRowModel } from '@tanstack/react-table'
import { useReactTable, getSortedRowModel, getFilteredRowModel, getCoreRowModel, flexRender, createColumnHelper } from '@tanstack/react-table'
import classnames from 'classnames'
import { groupBy } from 'lodash-es'
import { useMemo, useLayoutEffect, useRef, useState, useEffect } from 'react'
@ -45,7 +45,7 @@ function formatSpeed (upload: number, download: number) {
}
}
const table = createTable().setRowType<FormatConnection>()
const columnHelper = createColumnHelper<FormatConnection>()
export default function Connections () {
const { translation, lang } = useI18n()
@ -99,13 +99,13 @@ export default function Connections () {
const intersection = useIntersectionObserver(pinRef, { threshold: [1] })
const columns = useMemo(
() => [
table.createDataColumn(Columns.Host, { minSize: 260, size: 260, header: t(`columns.${Columns.Host}`) }),
table.createDataColumn(Columns.Network, { minSize: 80, size: 80, header: t(`columns.${Columns.Network}`) }),
table.createDataColumn(Columns.Type, { minSize: 100, size: 100, header: t(`columns.${Columns.Type}`) }),
table.createDataColumn(Columns.Chains, { minSize: 200, size: 200, header: t(`columns.${Columns.Chains}`) }),
table.createDataColumn(Columns.Rule, { minSize: 140, size: 140, header: t(`columns.${Columns.Rule}`) }),
table.createDataColumn(Columns.Process, { minSize: 100, size: 100, header: t(`columns.${Columns.Process}`), cell: cell => cell.getValue() ? basePath(cell.getValue()!) : '-' }),
table.createDataColumn(
columnHelper.accessor(Columns.Host, { minSize: 260, size: 260, header: t(`columns.${Columns.Host}`) }),
columnHelper.accessor(Columns.Network, { minSize: 80, size: 80, header: t(`columns.${Columns.Network}`) }),
columnHelper.accessor(Columns.Type, { minSize: 100, size: 100, header: t(`columns.${Columns.Type}`) }),
columnHelper.accessor(Columns.Chains, { minSize: 200, size: 200, header: t(`columns.${Columns.Chains}`) }),
columnHelper.accessor(Columns.Rule, { minSize: 140, size: 140, header: t(`columns.${Columns.Rule}`) }),
columnHelper.accessor(Columns.Process, { minSize: 100, size: 100, header: t(`columns.${Columns.Process}`), cell: cell => cell.getValue() ? basePath(cell.getValue()!) : '-' }),
columnHelper.accessor(
row => [row.speed.upload, row.speed.download],
{
id: Columns.Speed,
@ -123,10 +123,10 @@ export default function Connections () {
cell: cell => formatSpeed(cell.getValue()[0], cell.getValue()[1]),
},
),
table.createDataColumn(Columns.Upload, { minSize: 100, size: 100, header: t(`columns.${Columns.Upload}`), cell: cell => formatTraffic(cell.getValue()) }),
table.createDataColumn(Columns.Download, { minSize: 100, size: 100, header: t(`columns.${Columns.Download}`), cell: cell => formatTraffic(cell.getValue()) }),
table.createDataColumn(Columns.SourceIP, { minSize: 140, size: 140, header: t(`columns.${Columns.SourceIP}`), filterFn: 'equals' }),
table.createDataColumn(
columnHelper.accessor(Columns.Upload, { minSize: 100, size: 100, header: t(`columns.${Columns.Upload}`), cell: cell => formatTraffic(cell.getValue()) }),
columnHelper.accessor(Columns.Download, { minSize: 100, size: 100, header: t(`columns.${Columns.Download}`), cell: cell => formatTraffic(cell.getValue()) }),
columnHelper.accessor(Columns.SourceIP, { minSize: 140, size: 140, header: t(`columns.${Columns.SourceIP}`), filterFn: 'equals' }),
columnHelper.accessor(
Columns.Time,
{
minSize: 120,
@ -161,7 +161,7 @@ export default function Connections () {
readerRef.current?.destory()
})
const instance = useTableInstance(table, {
const instance = useReactTable({
data,
columns,
getCoreRowModel: getCoreRowModel(),
@ -223,7 +223,7 @@ export default function Connections () {
ref={column.id === Columns.Host ? pinRef : undefined}
key={id}>
<div onClick={column.getToggleSortingHandler()}>
{header.renderHeader()}
{ flexRender(header.column.columnDef.header, header.getContext()) }
{
column.getIsSorted() !== false
? column.getIsSorted() === 'desc' ? ' ↓' : ' ↑'
@ -261,7 +261,7 @@ export default function Connections () {
className={classname}
style={{ width: cell.column.getSize() }}
key={cell.column.id}>
{ cell.renderCell() }
{ flexRender(cell.column.columnDef.cell, cell.getContext()) }
</td>
)
})

View File

@ -28,6 +28,10 @@ export class StreamReader<T> {
}
protected connectWebsocket () {
if (!this.url) {
return
}
const url = new URL(this.url)
this.connection = new WebSocket(url.toString())

View File

@ -169,7 +169,7 @@ export function useProxy () {
.filter(key => !unUsedProxy.has(key))
.map(key => ({ ...allProxies.data.proxies[key], name: key }))
const [proxy, groups] = partition(proxies, proxy => !policyGroup.has(proxy.type))
set({ proxies: proxy as API.Proxy[], groups: groups as API.Group[], global: global })
set({ proxies: proxy as API.Proxy[], groups: groups as API.Group[], global })
})
const markProxySelected = useCallback((name: string, selected: string) => {

View File

@ -30,6 +30,9 @@ export default defineConfig(
}),
splitVendorChunkPlugin(),
],
server: {
port: 3000,
},
base: './',
css: {
preprocessorOptions: {