mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-11 05:58:56 +08:00
feat(electron): add isMaximized flag to html (#6199)
to make some special ui rules for desktop
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import './register-blocksuite-components';
|
import './register-blocksuite-components';
|
||||||
import './edgeless-template';
|
import './edgeless-template';
|
||||||
|
|
||||||
|
import { apis, events } from '@affine/electron-api';
|
||||||
import { setupGlobal } from '@affine/env/global';
|
import { setupGlobal } from '@affine/env/global';
|
||||||
import * as Sentry from '@sentry/react';
|
import * as Sentry from '@sentry/react';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
@@ -51,10 +52,16 @@ export function setup() {
|
|||||||
|
|
||||||
// load persistent config for electron
|
// load persistent config for electron
|
||||||
// TODO: should be sync, but it's not necessary for now
|
// TODO: should be sync, but it's not necessary for now
|
||||||
environment.isDesktop &&
|
if (environment.isDesktop) {
|
||||||
appConfigProxy
|
appConfigProxy
|
||||||
.getSync()
|
.getSync()
|
||||||
.catch(() => console.error('failed to load app config'));
|
.catch(() => console.error('failed to load app config'));
|
||||||
|
const handleMaximized = (maximized: boolean | undefined) => {
|
||||||
|
document.documentElement.dataset.maximized = String(maximized);
|
||||||
|
};
|
||||||
|
apis?.ui.isMaximized().then(handleMaximized).catch(console.error);
|
||||||
|
events?.ui.onMaximized(handleMaximized);
|
||||||
|
}
|
||||||
|
|
||||||
performanceSetupLogger.info('done');
|
performanceSetupLogger.info('done');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,11 @@ type ClientHandler = {
|
|||||||
arg0: any,
|
arg0: any,
|
||||||
...rest: infer A
|
...rest: infer A
|
||||||
) => any
|
) => any
|
||||||
? (...args: A) => Promise<ReturnType<MainHandlers[namespace][method]>>
|
? (
|
||||||
|
...args: A
|
||||||
|
) => ReturnType<MainHandlers[namespace][method]> extends Promise<any>
|
||||||
|
? ReturnType<MainHandlers[namespace][method]>
|
||||||
|
: Promise<ReturnType<MainHandlers[namespace][method]>>
|
||||||
: never;
|
: never;
|
||||||
};
|
};
|
||||||
} & HelperHandlers;
|
} & HelperHandlers;
|
||||||
|
|||||||
@@ -96,6 +96,10 @@ async function createWindow(additionalArguments: string[]) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
logger.info('main window is ready to show');
|
logger.info('main window is ready to show');
|
||||||
|
|
||||||
|
if (browserWindow.isMaximized() || browserWindow.isFullScreen()) {
|
||||||
|
uiSubjects.onMaximized.next(true);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
browserWindow.on('close', e => {
|
browserWindow.on('close', e => {
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ import { getChallengeResponse } from './challenge';
|
|||||||
import { getGoogleOauthCode } from './google-auth';
|
import { getGoogleOauthCode } from './google-auth';
|
||||||
|
|
||||||
export const uiHandlers = {
|
export const uiHandlers = {
|
||||||
|
isMaximized: async () => {
|
||||||
|
const window = await getMainWindow();
|
||||||
|
return window?.isMaximized();
|
||||||
|
},
|
||||||
handleThemeChange: async (_, theme: (typeof nativeTheme)['themeSource']) => {
|
handleThemeChange: async (_, theme: (typeof nativeTheme)['themeSource']) => {
|
||||||
nativeTheme.themeSource = theme;
|
nativeTheme.themeSource = theme;
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user