mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-04-12 04:19:25 -07:00
Windows update (#49)
This commit is contained in:
57
src/main/runtime/overlay-hosted-modal-open.ts
Normal file
57
src/main/runtime/overlay-hosted-modal-open.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import type { OverlayHostedModal } from '../../shared/ipc/contracts';
|
||||
|
||||
export function openOverlayHostedModal(
|
||||
deps: {
|
||||
ensureOverlayStartupPrereqs: () => void;
|
||||
ensureOverlayWindowsReadyForVisibilityActions: () => void;
|
||||
sendToActiveOverlayWindow: (
|
||||
channel: string,
|
||||
payload?: unknown,
|
||||
runtimeOptions?: {
|
||||
restoreOnModalClose?: OverlayHostedModal;
|
||||
preferModalWindow?: boolean;
|
||||
},
|
||||
) => boolean;
|
||||
},
|
||||
input: {
|
||||
channel: string;
|
||||
modal: OverlayHostedModal;
|
||||
payload?: unknown;
|
||||
preferModalWindow?: boolean;
|
||||
},
|
||||
): boolean {
|
||||
deps.ensureOverlayStartupPrereqs();
|
||||
deps.ensureOverlayWindowsReadyForVisibilityActions();
|
||||
return deps.sendToActiveOverlayWindow(input.channel, input.payload, {
|
||||
restoreOnModalClose: input.modal,
|
||||
preferModalWindow: input.preferModalWindow,
|
||||
});
|
||||
}
|
||||
|
||||
export async function retryOverlayModalOpen(
|
||||
deps: {
|
||||
waitForModalOpen: (modal: OverlayHostedModal, timeoutMs: number) => Promise<boolean>;
|
||||
logWarn: (message: string) => void;
|
||||
},
|
||||
input: {
|
||||
modal: OverlayHostedModal;
|
||||
timeoutMs: number;
|
||||
retryWarning: string;
|
||||
sendOpen: () => boolean;
|
||||
},
|
||||
): Promise<boolean> {
|
||||
if (!input.sendOpen()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (await deps.waitForModalOpen(input.modal, input.timeoutMs)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
deps.logWarn(input.retryWarning);
|
||||
if (!input.sendOpen()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return await deps.waitForModalOpen(input.modal, input.timeoutMs);
|
||||
}
|
||||
Reference in New Issue
Block a user