feat: P3 final batch - zoom, fonts, dark mode, tech debt cleanup
- Page zoom control (0.5-2.0x, localStorage) - Custom monospace font selector (6 presets + custom) - Element Plus dark mode final fixes (dropdown, message-box, switch, popper) - AGENTS.md updated with correct paths + new modules/components/IPC channels - ROADMAP: window state persistence already done via win-state.ts - ROADMAP: tech debt items marked done
This commit is contained in:
@@ -8,7 +8,7 @@ Fork of [AnotherRedisDesktopManager](https://github.com/qishibo/AnotherRedisDesk
|
||||
|
||||
- **Shell:** Electron 43 (`electron/main/index.ts`)
|
||||
- **Preload:** `electron/preload/index.ts` (contextBridge, typed API)
|
||||
- **Renderer:** Vue 3 + Pinia + Element Plus + Vue Router (`src/renderer/`)
|
||||
- **Renderer:** Vue 3 + Pinia + Element Plus + Vue Router (`src/`)
|
||||
- **Shared:** `electron/shared/types.ts` (cross-process types)
|
||||
- **Build:** electron-vite + Vite 6 + TypeScript 5
|
||||
- **Redis client:** ioredis 5 (main process only)
|
||||
@@ -41,20 +41,21 @@ Electron main (electron/main/)
|
||||
│ ├── set.ts # members, add, remove
|
||||
│ ├── zset.ts # range, add, remove
|
||||
│ ├── stream.ts # info, range, add, trim
|
||||
│ └── server.ts # info, select, ping, slowlog
|
||||
│ ├── server.ts # info, select, ping, slowlog
|
||||
│ ├── pubsub.ts # SUBSCRIBE/UNSUBSCRIBE
|
||||
│ ├── commandLogger.ts # command execution log
|
||||
│ └── format.ts # value decode/format detection
|
||||
├── store.ts # electron-store (connections, settings)
|
||||
├── credential.ts # safeStorage encrypt/decrypt
|
||||
├── win-state.ts # window position persistence
|
||||
├── updater.ts # electron-updater (check/download/install)
|
||||
└── ipc-handlers.ts # all IPC channel handlers
|
||||
|
||||
Preload (electron/preload/)
|
||||
├── index.ts # contextBridge.exposeInMainWorld
|
||||
└── index.d.ts # ElectronAPI type declarations
|
||||
|
||||
Shared (electron/shared/)
|
||||
└── types.ts # Cross-process type definitions
|
||||
|
||||
Renderer (src/renderer/src/)
|
||||
Renderer (src/)
|
||||
├── main.ts # Vue 3 bootstrap (Pinia, Element Plus)
|
||||
├── App.vue # Shell layout (TitleBar + Sidebar + MainArea + StatusBar)
|
||||
├── stores/
|
||||
@@ -82,14 +83,24 @@ Renderer (src/renderer/src/)
|
||||
│ ├── StreamEditor.vue # stream entries
|
||||
│ ├── CliView.vue # interactive terminal
|
||||
│ ├── SlowLogView.vue # slow log table
|
||||
│ └── SettingsView.vue # theme, language, scan count
|
||||
│ ├── SettingsView.vue # theme, language, scan count
|
||||
│ ├── MemoryAnalysis.vue # MEMORY USAGE scan & sort
|
||||
│ ├── CommandLog.vue # command execution history
|
||||
│ └── ReJsonEditor.vue # JSON.GET / JSON.SET editing
|
||||
├── i18n/
|
||||
│ ├── index.ts # useI18n composable
|
||||
│ └── locales/
|
||||
│ ├── en.ts # English
|
||||
│ └── zh-CN.ts # 中文
|
||||
└── composables/
|
||||
└── useKeyboard.ts # keyboard shortcut handler
|
||||
├── composables/
|
||||
│ └── useKeyboard.ts # keyboard shortcut handler
|
||||
├── styles/
|
||||
│ ├── variables.css # CSS custom properties
|
||||
│ └── global.css # global overrides
|
||||
├── data/
|
||||
│ └── commands.ts # Redis command definitions
|
||||
└── utils/
|
||||
└── binary.ts # hex ↔ buffer conversion
|
||||
```
|
||||
|
||||
## IPC Channels
|
||||
@@ -120,6 +131,22 @@ Renderer (src/renderer/src/)
|
||||
| `redis:dbSize` | invoke | DBSIZE |
|
||||
| `redis:slowLogGet` | invoke | SLOWLOG GET |
|
||||
| `redis:memoryUsage` | invoke | MEMORY USAGE |
|
||||
| `redis:subscribe` | invoke | SUBSCRIBE to channels |
|
||||
| `redis:unsubscribe` | invoke | UNSUBSCRIBE from channels |
|
||||
| `redis:monitor` | invoke | Start MONITOR stream |
|
||||
| `redis:monitorStop` | invoke | Stop MONITOR stream |
|
||||
| `redis:getCommandLog` | invoke | Get command execution log |
|
||||
| `redis:clearCommandLog` | invoke | Clear command log |
|
||||
| `redis:decodeValue` | invoke | Decode value by format |
|
||||
| `redis:detectFormat` | invoke | Auto-detect value format |
|
||||
| `redis:customFormat` | invoke | Custom external formatter |
|
||||
| `redis:streamGroups` | invoke | XINFO GROUPS |
|
||||
| `redis:streamConsumers` | invoke | XINFO CONSUMERS |
|
||||
| `redis:streamGroupCreate` | invoke | XGROUP CREATE |
|
||||
| `redis:streamGroupDestroy` | invoke | XGROUP DESTROY |
|
||||
| `redis:streamAck` | invoke | XACK messages |
|
||||
| `redis:rejsonGet` | invoke | JSON.GET value |
|
||||
| `redis:rejsonSet` | invoke | JSON.SET value |
|
||||
| `storage:getConnections` | invoke | Read connections |
|
||||
| `storage:saveConnection` | invoke | Save connection |
|
||||
| `storage:deleteConnection` | invoke | Delete connection |
|
||||
@@ -131,6 +158,9 @@ Renderer (src/renderer/src/)
|
||||
| `window:minimize` | send | Minimize window |
|
||||
| `window:maximize` | send | Toggle maximize |
|
||||
| `window:close` | send | Close window |
|
||||
| `updater:check` | invoke | Check for updates |
|
||||
| `updater:download` | invoke | Download update |
|
||||
| `updater:install` | invoke | Quit and install update |
|
||||
|
||||
## Keyboard Shortcuts
|
||||
|
||||
@@ -152,8 +182,8 @@ Renderer (src/renderer/src/)
|
||||
|
||||
- Root `tsconfig.json` references `tsconfig.node.json` (main + preload) and `tsconfig.web.json` (renderer)
|
||||
- Node target includes `src/main/**/*`, `src/preload/**/*`, `electron.vite.config.ts`
|
||||
- Web target includes `src/renderer/**/*`
|
||||
- `@renderer` alias resolves to `src/renderer/src`
|
||||
- Web target includes `src/**/*`
|
||||
- `@renderer` alias resolves to `src`
|
||||
|
||||
## Security
|
||||
|
||||
|
||||
Reference in New Issue
Block a user