- 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
38 lines
1.3 KiB
TypeScript
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');
|
|
},
|
|
});
|