mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-26 07:45:34 +00:00
Split all source files exceeding 500 lines into smaller, focused modules:
- electron/main.ts → mainBootstrapHelpers, mainRuntimeState, mainUpdateIntegration, mainWindowControls
- electron/windows.ts → editorWindows, hudWindows, windowShared
- electron/updater.ts → updaterDialogs, updaterEventHandlers, updaterShared
- electron/preload.ts → preloadExtensionsBridge, preloadUpdateBridge
- electron/ipc/register/recording.ts → recording/ directory with focused handlers
- src/components/video-editor/VideoEditor.tsx → EditorContent, EditorHeader, EditorSidebar, EditorToolbar, hooks/
- src/components/video-editor/SettingsPanel.tsx → settings/ directory with per-section components
- src/components/video-editor/AnnotationSettingsPanel.tsx → tab components
- src/components/video-editor/ExtensionManager.tsx → extension-manager/ directory
- src/components/video-editor/VideoPlayback.tsx → videoPlaybackComponent/ directory
- src/components/video-editor/projectPersistence.ts → projectPersistence{Normalization,Paths,Regions,Shared}.ts
- src/components/video-editor/timeline/TimelineEditor.tsx → TimelineEditor/ directory
- src/components/video-editor/types.ts → focused type modules
- src/components/launch/LaunchWindow.tsx → LaunchWindow/ directory
- src/hooks/useScreenRecorder.ts → useScreenRecorder/ directory
- src/lib/exporter/audioEncoder.ts → audioEncoder/ directory
- src/lib/exporter/frameRenderer.ts → frameRenderer modules
- src/lib/exporter/modernFrameRenderer.ts → filters and lifecycle modules
- src/lib/exporter/modernVideoExporter.ts → modernVideoExporter/ directory
- src/lib/exporter/videoExporter.ts → video-exporter/ directory
- src/lib/exporter/streamingDecoder.ts → streamingDecoderHelpers.ts
- src/lib/extensions/extensionHost.ts → extensionHost{ApiFactory,QueryApi,RegistrationApi,Shared,State}.ts
- src/lib/extensions/types.ts → focused type modules
- electron/native/ScreenCaptureKitRecorder.swift → ScreenCaptureKitRecorder/ directory
- scripts/benchmark-export-queues.mjs → benchmark-export-queues/ directory
- .github/workflows/release.yml → extracted merge-macos-metadata composite action
- scripts/build-native-helpers.mjs → updated for multi-file Swift compilation
Also incorporates upstream default export quality change (good → source).
54 lines
2.3 KiB
TypeScript
54 lines
2.3 KiB
TypeScript
import type { IpcRenderer, IpcRendererEvent } from "electron";
|
|
|
|
export function createUpdateBridge(ipcRenderer: IpcRenderer) {
|
|
return {
|
|
installDownloadedUpdate: () => ipcRenderer.invoke("install-downloaded-update"),
|
|
downloadAvailableUpdate: () => ipcRenderer.invoke("download-available-update"),
|
|
deferDownloadedUpdate: (delayMs?: number) =>
|
|
ipcRenderer.invoke("defer-downloaded-update", delayMs),
|
|
dismissUpdateToast: () => ipcRenderer.invoke("dismiss-update-toast"),
|
|
skipUpdateVersion: () => ipcRenderer.invoke("skip-update-version"),
|
|
getCurrentUpdateToastPayload: () => ipcRenderer.invoke("get-current-update-toast-payload"),
|
|
getUpdateStatusSummary: () => ipcRenderer.invoke("get-update-status-summary"),
|
|
previewUpdateToast: () => ipcRenderer.invoke("preview-update-toast"),
|
|
checkForAppUpdates: () => ipcRenderer.invoke("check-for-app-updates"),
|
|
onUpdateToastStateChanged: (
|
|
callback: (payload: UpdateToastState | null) => void,
|
|
) => {
|
|
const listener = (_event: IpcRendererEvent, payload: UpdateToastState | null) =>
|
|
callback(payload);
|
|
ipcRenderer.on("update-toast-state", listener);
|
|
return () => ipcRenderer.removeListener("update-toast-state", listener);
|
|
},
|
|
onUpdateReadyToast: (
|
|
callback: (payload: {
|
|
version: string;
|
|
detail: string;
|
|
delayMs: number;
|
|
isPreview?: boolean;
|
|
}) => void,
|
|
) => {
|
|
const listener = (
|
|
_event: IpcRendererEvent,
|
|
payload: { version: string; detail: string; delayMs: number; isPreview?: boolean },
|
|
) => callback(payload);
|
|
ipcRenderer.on("update-ready-toast", listener);
|
|
return () => ipcRenderer.removeListener("update-ready-toast", listener);
|
|
},
|
|
onMenuLoadProject: (callback: () => void) => {
|
|
const listener = () => callback();
|
|
ipcRenderer.on("menu-load-project", listener);
|
|
return () => ipcRenderer.removeListener("menu-load-project", listener);
|
|
},
|
|
onMenuSaveProject: (callback: () => void) => {
|
|
const listener = () => callback();
|
|
ipcRenderer.on("menu-save-project", listener);
|
|
return () => ipcRenderer.removeListener("menu-save-project", listener);
|
|
},
|
|
onMenuSaveProjectAs: (callback: () => void) => {
|
|
const listener = () => callback();
|
|
ipcRenderer.on("menu-save-project-as", listener);
|
|
return () => ipcRenderer.removeListener("menu-save-project-as", listener);
|
|
},
|
|
};
|
|
} |