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