mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Make difference between soft and hard quit of application apparent
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi> Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
This commit is contained in:
parent
4fe77af77f
commit
c90ab671ff
@ -5,8 +5,7 @@
|
||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||
import type { Runnable } from "../run-many-for";
|
||||
|
||||
export const beforeApplicationHardQuitInjectionToken = getInjectionToken<
|
||||
Runnable<{ cancel: () => void }>
|
||||
>({
|
||||
id: "before-application-hard-quit",
|
||||
});
|
||||
export const beforeApplicationHardQuitInjectionToken =
|
||||
getInjectionToken<Runnable>({
|
||||
id: "before-application-hard-quit",
|
||||
});
|
||||
|
||||
@ -7,21 +7,42 @@ import { beforeApplicationIsReadyInjectionToken } from "../before-application-is
|
||||
import { beforeApplicationSoftQuitInjectionToken } from "../../before-application-soft-quit/before-application-soft-quit-injection-token";
|
||||
import { runManyFor } from "../../run-many-for";
|
||||
import whenApplicationWillQuitInjectable from "../../../electron-app/when-application-will-quit.injectable";
|
||||
import { beforeApplicationHardQuitInjectionToken } from "../../before-application-hard-quit/before-application-hard-quit-injection-token";
|
||||
import isIntegrationTestingInjectable from "../../../../common/vars/is-integration-testing.injectable";
|
||||
|
||||
const setupClosingOfApplicationInjectable = getInjectable({
|
||||
id: "setup-closing-of-application",
|
||||
|
||||
instantiate: (di) => {
|
||||
const whenApplicationWillQuit = di.inject(whenApplicationWillQuitInjectable);
|
||||
const whenApplicationWillQuit = di.inject(
|
||||
whenApplicationWillQuitInjectable,
|
||||
);
|
||||
|
||||
const runManyForApplicationClose = runManyFor(di)(
|
||||
const runMany = runManyFor(di);
|
||||
|
||||
const runRunnablesBeforeApplicationSoftQuit = runMany(
|
||||
beforeApplicationSoftQuitInjectionToken,
|
||||
);
|
||||
|
||||
const runRunnablesBeforeApplicationHardQuit = runMany(
|
||||
beforeApplicationHardQuitInjectionToken,
|
||||
);
|
||||
|
||||
const isIntegrationTesting = di.inject(isIntegrationTestingInjectable);
|
||||
|
||||
return {
|
||||
run: () => {
|
||||
whenApplicationWillQuit(async args => {
|
||||
await runManyForApplicationClose(args);
|
||||
whenApplicationWillQuit(async ({ cancel: cancelNativeQuit }) => {
|
||||
await runRunnablesBeforeApplicationSoftQuit();
|
||||
|
||||
// &&!autoUpdateIsRunning) {
|
||||
const shouldDoOnlySoftQuit = !isIntegrationTesting;
|
||||
|
||||
if (shouldDoOnlySoftQuit) {
|
||||
cancelNativeQuit();
|
||||
} else {
|
||||
await runRunnablesBeforeApplicationHardQuit();
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
@ -5,8 +5,7 @@
|
||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||
import type { Runnable } from "../run-many-for";
|
||||
|
||||
export const beforeApplicationSoftQuitInjectionToken = getInjectionToken<
|
||||
Runnable<{ cancel: () => void }>
|
||||
>({
|
||||
id: "before-application-soft-quit",
|
||||
});
|
||||
export const beforeApplicationSoftQuitInjectionToken =
|
||||
getInjectionToken<Runnable>({
|
||||
id: "before-application-soft-quit",
|
||||
});
|
||||
|
||||
@ -1,38 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { beforeApplicationHardQuitInjectionToken } from "../../before-application-hard-quit/before-application-hard-quit-injection-token";
|
||||
import { runManyFor } from "../../run-many-for";
|
||||
import { beforeApplicationSoftQuitInjectionToken } from "../before-application-soft-quit-injection-token";
|
||||
import isIntegrationTestingInjectable from "../../../../common/vars/is-integration-testing.injectable";
|
||||
|
||||
const tentativeHardQuitApplicationInjectable = getInjectable({
|
||||
id: "tentative-hard-quit-application",
|
||||
|
||||
instantiate: (di) => {
|
||||
const runMany = runManyFor(di);
|
||||
const runRunnablesBeforeApplicationHardQuit = runMany(beforeApplicationHardQuitInjectionToken);
|
||||
const isIntegrationTesting = di.inject(isIntegrationTestingInjectable);
|
||||
|
||||
return {
|
||||
run: async (runParameter) => {
|
||||
if (!isIntegrationTesting) {
|
||||
// &&!autoUpdateIsRunning) {
|
||||
runParameter.cancel();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
await runRunnablesBeforeApplicationHardQuit(runParameter);
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
causesSideEffects: true,
|
||||
|
||||
injectionToken: beforeApplicationSoftQuitInjectionToken,
|
||||
});
|
||||
|
||||
export default tentativeHardQuitApplicationInjectable;
|
||||
Loading…
Reference in New Issue
Block a user