mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00: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 './edgeless-template';
|
||||
|
||||
import { apis, events } from '@affine/electron-api';
|
||||
import { setupGlobal } from '@affine/env/global';
|
||||
import * as Sentry from '@sentry/react';
|
||||
import { useEffect } from 'react';
|
||||
@@ -51,10 +52,16 @@ export function setup() {
|
||||
|
||||
// load persistent config for electron
|
||||
// TODO: should be sync, but it's not necessary for now
|
||||
environment.isDesktop &&
|
||||
if (environment.isDesktop) {
|
||||
appConfigProxy
|
||||
.getSync()
|
||||
.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');
|
||||
}
|
||||
|
||||
@@ -21,7 +21,11 @@ type ClientHandler = {
|
||||
arg0: any,
|
||||
...rest: infer A
|
||||
) => 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;
|
||||
};
|
||||
} & HelperHandlers;
|
||||
|
||||
@@ -96,6 +96,10 @@ async function createWindow(additionalArguments: string[]) {
|
||||
);
|
||||
|
||||
logger.info('main window is ready to show');
|
||||
|
||||
if (browserWindow.isMaximized() || browserWindow.isFullScreen()) {
|
||||
uiSubjects.onMaximized.next(true);
|
||||
}
|
||||
});
|
||||
|
||||
browserWindow.on('close', e => {
|
||||
|
||||
@@ -12,6 +12,10 @@ import { getChallengeResponse } from './challenge';
|
||||
import { getGoogleOauthCode } from './google-auth';
|
||||
|
||||
export const uiHandlers = {
|
||||
isMaximized: async () => {
|
||||
const window = await getMainWindow();
|
||||
return window?.isMaximized();
|
||||
},
|
||||
handleThemeChange: async (_, theme: (typeof nativeTheme)['themeSource']) => {
|
||||
nativeTheme.themeSource = theme;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user