(feat): migrate experimental tauri cef to electron
(feat): add flake to expose tensamin desktop package (qol): update todo
This commit is contained in:
parent
be80e2f387
commit
a209ade10b
32 changed files with 1649 additions and 459 deletions
43
apps/electron/src/preload/preload.ts
Normal file
43
apps/electron/src/preload/preload.ts
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
import { contextBridge, ipcRenderer } from "electron";
|
||||
import { ipcChannels, type DesktopScreenShareSource } from "../shared/ipc.js";
|
||||
|
||||
function windowAction(channel: string) {
|
||||
return () => ipcRenderer.invoke(channel);
|
||||
}
|
||||
|
||||
const desktopApi = {
|
||||
media: {
|
||||
listScreenShareSources: () =>
|
||||
ipcRenderer.invoke(ipcChannels.listScreenShareSources),
|
||||
listScreenShareAudioOutputs: () =>
|
||||
ipcRenderer.invoke(ipcChannels.listScreenShareAudioOutputs),
|
||||
getScreenShareCapabilities: () =>
|
||||
ipcRenderer.invoke(ipcChannels.getScreenShareCapabilities),
|
||||
selectScreenShareSource: (sourceId: DesktopScreenShareSource["id"]) => {
|
||||
if (typeof sourceId !== "string" || sourceId.length === 0) {
|
||||
return Promise.reject(new Error("Invalid screen share source id."));
|
||||
}
|
||||
|
||||
return ipcRenderer.invoke(ipcChannels.selectScreenShareSource, sourceId);
|
||||
},
|
||||
},
|
||||
app: {
|
||||
getVersion: () => ipcRenderer.invoke(ipcChannels.getVersion),
|
||||
},
|
||||
updates: {
|
||||
checkForUpdates: () => ipcRenderer.invoke(ipcChannels.checkForUpdates),
|
||||
},
|
||||
window: {
|
||||
minimize: () => windowAction(ipcChannels.minimizeWindow),
|
||||
maximize: () => windowAction(ipcChannels.maximizeWindow),
|
||||
close: () => windowAction(ipcChannels.closeWindow),
|
||||
},
|
||||
};
|
||||
|
||||
contextBridge.exposeInMainWorld("tensaminDesktop", desktopApi);
|
||||
contextBridge.exposeInMainWorld(
|
||||
"tensaminShowWindowControls",
|
||||
process.env.TENSAMIN_HIDE_CONTROLS == null,
|
||||
);
|
||||
|
||||
export type TensaminDesktopApi = typeof desktopApi;
|
||||
Loading…
Reference in a new issue