Ziya/electron/preload.ts
rizary 6efcf43691
feat: complete ESLint configuration overhaul and theme system improvements
- Migrate from legacy .eslintrc.json to modern flat config system
- Remove conflicting ESLint configuration files
- Fix auto-generation of eslint.config.mjs by Nuxt
- Update ESLint rules to use single quotes and proper formatting
- Add comprehensive theme switching system with 24 palettes
- Implement proper daisyUI theme integration
- Add theme store with persistence and dark/light mode support
- Create ThemeSwitcher component with enhanced UI
- Fix package.json scripts to work with new ESLint flat config
- Update VS Code settings for proper ESLint integration
- Add changelogen scripts for proper changelog management

BREAKING CHANGE: ESLint configuration migrated to flat config system
2025-06-22 00:53:24 +07:00

32 lines
1.2 KiB
TypeScript

import { contextBridge, ipcRenderer } from 'electron';
// 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: any, maximized: boolean) => void) => {
ipcRenderer.on('window-maximize-changed', callback);
},
removeMaximizeListener: (callback: (event: any, 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: any) => void) => {
ipcRenderer.on('redis-data', (_event, data) => callback(data));
},
// Remove listener
removeRedisDataListener: () => {
ipcRenderer.removeAllListeners('redis-data');
},
});