Files
spark-store/electron/main/handle-url-scheme.ts
Elysia 6622e70033 refactor: improve code formatting and consistency across components
- Updated button and span elements in ThemeToggle.vue and TopActions.vue for better readability.
- Enhanced UninstallConfirmModal.vue and UpdateAppsModal.vue with consistent indentation and spacing.
- Refactored downloadStatus.ts and storeConfig.ts for improved code clarity.
- Standardized string quotes and spacing in typedefinition.ts and processInstall.ts.
- Ensured consistent use of arrow functions and improved variable declarations throughout the codebase.
2026-02-12 18:32:41 +08:00

83 lines
1.8 KiB
TypeScript

import { BrowserWindow } from "electron";
import { deepLink } from "./deeplink";
import { isLoaded } from "../global";
import pino from "pino";
const logger = pino({ name: "handle-url-scheme.ts" });
const pendingActions: Array<() => void> = [];
new Promise<void>((resolve) => {
const checkLoaded = () => {
if (isLoaded.value) {
resolve();
} else {
setTimeout(checkLoaded, 100);
}
};
checkLoaded();
}).then(() => {
while (pendingActions.length > 0) {
const action = pendingActions.shift();
if (action) action();
}
});
deepLink.on("event", (query) => {
logger.info(
`Deep link: event "event" fired with query: ${JSON.stringify(query)}`,
);
});
deepLink.on("action", (query) => {
logger.info(
`Deep link: event "action" fired with query: ${JSON.stringify(query)}`,
);
const action = () => {
const win = BrowserWindow.getAllWindows()[0];
if (!win) return;
if (query.cmd === "update") {
win.webContents.send("deep-link-update");
if (win.isMinimized()) win.restore();
win.focus();
} else if (query.cmd === "list") {
win.webContents.send("deep-link-installed");
if (win.isMinimized()) win.restore();
win.focus();
}
};
logger.info(`isLoaded: ${isLoaded.value}`);
if (isLoaded.value) {
action();
} else {
pendingActions.push(action);
}
});
deepLink.on("install", (query) => {
logger.info(
`Deep link: event "install" fired with query: ${JSON.stringify(query)}`,
);
const action = () => {
const win = BrowserWindow.getAllWindows()[0];
if (!win) return;
if (query.pkg) {
win.webContents.send("deep-link-install", query.pkg);
if (win.isMinimized()) win.restore();
win.focus();
}
};
if (isLoaded.value) {
action();
} else {
pendingActions.push(action);
}
});