feat: rebuild frontend with react

This commit is contained in:
liumangmang
2026-04-22 09:53:06 +08:00
parent 42836aa4c3
commit 423cca97a6
81 changed files with 2907 additions and 10230 deletions
+144
View File
@@ -0,0 +1,144 @@
export type AuthType = 'PASSWORD' | 'PRIVATE_KEY'
export type ConnectionSetupMode = 'NONE' | 'PASSWORD_BOOTSTRAP'
export type SessionTreeNodeType = 'folder' | 'connection'
export type SessionTreeSortMode = 'manual' | 'nameAsc'
export type WorkspaceLayout = 'split' | 'terminal' | 'sftp'
export interface LoginResponse {
token: string
username: string
displayName: string
passwordChangeRequired: boolean
}
export interface CurrentUser {
username: string
displayName: string
passwordChangeRequired?: boolean
}
export interface Connection {
id: number
name: string
host: string
port: number
username: string
authType: AuthType
createdAt: string
updatedAt: string
}
export interface ConnectionCreateRequest {
name: string
host: string
port?: number
username: string
authType?: AuthType
password?: string
privateKey?: string
passphrase?: string
setupMode?: ConnectionSetupMode
bootstrapPassword?: string
}
export interface SessionTreeNodePayload {
id: string
type: SessionTreeNodeType
name: string
parentId: string | null
order: number
connectionId?: number
expanded?: boolean
createdAt: number
updatedAt: number
}
export interface SessionTreeLayoutPayload {
nodes: SessionTreeNodePayload[]
sortMode?: SessionTreeSortMode
}
export interface SftpFileInfo {
name: string
directory: boolean
size: number
mtime: number
}
export interface UploadTask {
taskId: string
status: 'queued' | 'running' | 'success' | 'error'
progress: number
transferredBytes: number
totalBytes: number
filename: string
error?: string
createdAt: number
startedAt: number
finishedAt: number
}
export interface RemoteTransferTask {
taskId: string
status: 'queued' | 'running' | 'success' | 'error' | 'cancelled'
progress: number
transferredBytes: number
totalBytes: number
error?: string
createdAt: number
startedAt: number
finishedAt: number
}
export interface BatchCommandResult {
connectionId: number
connectionName: string
success: boolean
output: string | null
error: string | null
durationMs: number
}
export interface BatchCommandResponse {
command: string
total: number
successCount: number
failureCount: number
results: BatchCommandResult[]
}
export interface MonitorMetrics {
cpuUsage?: number | null
memTotal?: number | null
memUsed?: number | null
memUsage?: number | null
diskUsage?: number | null
load1?: number | null
cpuCores?: number | null
uptime?: string | null
}
export interface WorkspaceTab {
id: number
name: string
connection: Connection
}
export interface TransferTaskItem {
id: string
label: string
status: 'queued' | 'running' | 'success' | 'error' | 'cancelled'
progress: number
message: string
taskId?: string
}
export interface TransferTaskGroup {
id: string
mode: 'LOCAL_TO_MANY' | 'REMOTE_TO_MANY'
title: string
status: 'queued' | 'running' | 'success' | 'error' | 'cancelled'
progress: number
createdAt: string
items: TransferTaskItem[]
}