Ziya/electron/preload.ts
rizary 67fb3a203e
feat: implement CEX analysis cards and real-time token monitoring
- Add TokenCard and CexAnalysisCard components for displaying token data
- Implement real-time Redis event streaming for token updates
- Add environment-based configuration system for dev/prod Redis servers
- Create comprehensive hunting ground dashboard with card management
- Add individual and bulk card removal functionality
- Implement browser integration for token details viewing
- Add timestamp utilities and proper type handling for Redis events
- Create production-ready configuration with 154.38.185.112 Redis server
- Add comprehensive documentation in README.md and CONTRIBUTORS.md
- Restructure project architecture with proper Electron-Vue integration

BREAKING CHANGE: Redis configuration now uses environment-based settings
2025-06-23 09:03:39 +07:00

38 lines
1.3 KiB
TypeScript

import { contextBridge, ipcRenderer } from 'electron';
interface RedisData {
channel: string;
data: unknown;
timestamp: number;
}
// Expose protected methods that allow the renderer process to use
// the ipcRenderer without exposing the entire object
contextBridge.exposeInMainWorld('electronAPI', {
// Window controls
minimizeWindow: () => ipcRenderer.invoke('window-minimize'),
maximizeWindow: () => ipcRenderer.invoke('window-maximize'),
closeWindow: () => ipcRenderer.invoke('window-close'),
isMaximized: () => ipcRenderer.invoke('window-is-maximized'),
// Window state listeners
onMaximizeChange: (callback: (event: unknown, maximized: boolean) => void) => {
ipcRenderer.on('window-maximize-changed', callback);
},
removeMaximizeListener: (callback: (event: unknown, maximized: boolean) => void) => {
ipcRenderer.removeListener('window-maximize-changed', callback);
},
// External links
openExternal: (url: string) => ipcRenderer.invoke('open-external', url),
// Redis data subscription
onRedisData: (callback: (data: RedisData) => void) => {
ipcRenderer.on('redis-data', (_event, data) => callback(data));
},
// Remove listener
removeRedisDataListener: () => {
ipcRenderer.removeAllListeners('redis-data');
},
});