Add integrated downloads manager and UI
Implements a full downloads manager with Electron main process handling, IPC APIs, and renderer integration. Adds a dedicated downloads page, a mini downloads popup in the navigation bar with progress ring, and controls for pausing, resuming, canceling, opening, and showing downloads. Updates styles and navigation to support the new downloads features.
This commit is contained in:
+11
@@ -119,4 +119,15 @@ contextBridge.exposeInMainWorld('aboutAPI', {
|
||||
// Relay context-menu commands from main to active renderer context (open new tabs etc.)
|
||||
ipcRenderer.on('context-menu-command', (event, payload) => {
|
||||
window.dispatchEvent(new CustomEvent('nebula-context-command', { detail: payload }));
|
||||
});
|
||||
|
||||
// Downloads API exposed to renderer
|
||||
contextBridge.exposeInMainWorld('downloadsAPI', {
|
||||
list: () => ipcRenderer.invoke('downloads-get-all'),
|
||||
action: (id, action) => ipcRenderer.invoke('downloads-action', { id, action }),
|
||||
clearCompleted: () => ipcRenderer.invoke('downloads-clear-completed'),
|
||||
onStarted: (handler) => ipcRenderer.on('downloads-started', (_e, payload) => handler(payload)),
|
||||
onUpdated: (handler) => ipcRenderer.on('downloads-updated', (_e, payload) => handler(payload)),
|
||||
onDone: (handler) => ipcRenderer.on('downloads-done', (_e, payload) => handler(payload)),
|
||||
onCleared: (handler) => ipcRenderer.on('downloads-cleared', handler)
|
||||
});
|
||||
Reference in New Issue
Block a user