85 lines
3.3 KiB
TypeScript
85 lines
3.3 KiB
TypeScript
import { contextBridge, ipcRenderer } from "electron";
|
|
console.log("setting PreLoad")
|
|
|
|
|
|
contextBridge.exposeInMainWorld('electron', {
|
|
login: (credentials: { email: string, password: string }) => ipcRenderer.invoke('login-request', credentials),
|
|
logout: () => ipcRenderer.invoke('logout-request'),
|
|
forgotPassword: (email: string) => ipcRenderer.invoke("forgot-password", email),
|
|
getToken: (TOKEN_KEY: "ACCESS_TOKEN" | "REFRESH_TOKEN") => ipcRenderer.invoke('get-token', TOKEN_KEY),
|
|
uploadScreenshot: () => ipcRenderer.invoke('upload-screenshot'),
|
|
getActiveAppDetails: () => ipcRenderer.invoke('get-active-app'),
|
|
toggleCloseBtn: (shouldEnable: boolean) => ipcRenderer.invoke('toggle-close-btn', shouldEnable),
|
|
resizeWindow: (width: number, height: number) => ipcRenderer.invoke('resize-window', width, height),
|
|
getProjectList: () => ipcRenderer.invoke("get-project-list"),
|
|
getRunningApps: () => ipcRenderer.invoke('get-running-apps'),
|
|
captureAppScreenShot: (appTitle: string): Promise<string> => ipcRenderer.invoke('capture-specific-window', appTitle),
|
|
onWindowUpdate: (callback) =>
|
|
ipcRenderer.on("window:updated", (_, data) => callback(data)),
|
|
|
|
|
|
startProjectTracking: (data) => ipcRenderer.invoke("start-project-tracking", data),
|
|
stopProjectTracking: (data) => ipcRenderer.invoke("stop-project-tracking", data),
|
|
trackingTabsOpeningClosing: (data) =>
|
|
ipcRenderer.invoke("tracking-tabs-opening-and-closing", data),
|
|
|
|
getProjectLogs: (
|
|
projectID: string,
|
|
fromDate?: string,
|
|
toDate?: string
|
|
) => ipcRenderer.invoke("get-project-logs", { projectID, fromDate, toDate }),
|
|
|
|
getProfile: () => ipcRenderer.invoke("get-profile"),
|
|
|
|
changePassword: (data: { oldPassword: string; password: string; cPassword: string }) =>
|
|
ipcRenderer.invoke("change-password", data),
|
|
|
|
onTokenExpired: (callback) => {
|
|
// Remove old listeners
|
|
ipcRenderer.removeAllListeners("token-expired");
|
|
|
|
// Add single-use listener
|
|
ipcRenderer.once("token-expired", () => {
|
|
console.log("⚠️ Token expired event received in PRELOAD (ONE TIME)");
|
|
callback();
|
|
});
|
|
},
|
|
|
|
getProjectSummary: (projectId: string, date: string) =>
|
|
ipcRenderer.invoke("get-project-summary", { projectId, date }),
|
|
|
|
createTimesheet: (data: any) => ipcRenderer.invoke('create-timesheet', data),
|
|
|
|
createPTOAndSickLeaveRequest: (data) =>
|
|
ipcRenderer.invoke("create-leave-request", data),
|
|
|
|
getSchedules: () => ipcRenderer.invoke("get-schedules"),
|
|
|
|
getPayslips: (vaId: string) => ipcRenderer.invoke("get-payslips", vaId),
|
|
getLeaveList: () => ipcRenderer.invoke("get-leave-list"),
|
|
getAdjustmentsList:() => ipcRenderer.invoke("get-adjustments-list"),
|
|
|
|
} satisfies Window['electron']);
|
|
|
|
// function ipcInvoke<Key extends keyof EventPayloadMapping>(
|
|
// key: Key
|
|
// ): Promise<EventPayloadMapping[Key]> {
|
|
// return ipcRenderer.invoke(key);
|
|
// }
|
|
|
|
// function ipcOn<Key extends keyof EventPayloadMapping>(
|
|
// key: Key,
|
|
// callback: (payload: EventPayloadMapping[Key]) => void
|
|
// ) {
|
|
// const cb = (_: Electron.IpcRendererEvent, payload: any) => callback(payload);
|
|
// ipcRenderer.on(key, cb);
|
|
// return () => ipcRenderer.off(key, cb);
|
|
// }
|
|
|
|
// function ipcSend<Key extends keyof EventPayloadMapping>(
|
|
// key: Key,
|
|
// payload: EventPayloadMapping[Key]
|
|
// ) {
|
|
// ipcRenderer.send(key, payload);
|
|
// }
|