misskey/packages/frontend/src/_boot_.ts

41 lines
1.3 KiB
TypeScript
Raw Normal View History

/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
// https://vitejs.dev/config/build-options.html#build-modulepreload
import 'vite/modulepreload-polyfill';
import '@/style.scss';
import type { CommonBootOptions } from '@/boot/common.js';
2023-09-19 07:37:43 +00:00
import { mainBoot } from '@/boot/main-boot.js';
import { subBoot } from '@/boot/sub-boot.js';
import { isEmbedPage } from '@/scripts/embed-page.js';
import { setIframeId, postMessageToParentWindow } from '@/scripts/post-message.js';
const subBootPaths = ['/share', '/auth', '/miauth', '/signup-complete'];
if (isEmbedPage()) {
const bootOptions: Partial<CommonBootOptions> = {};
const params = new URLSearchParams(location.search);
2024-06-01 15:20:35 +00:00
const color = params.get('colorMode');
if (color && ['light', 'dark'].includes(color)) {
bootOptions.forceColorMode = color as 'light' | 'dark';
}
window.addEventListener('message', event => {
if (event.data?.type === 'misskey:embedParent:registerIframeId' && event.data.payload?.iframeId != null) {
setIframeId(event.data.payload.iframeId);
}
});
subBoot(bootOptions, true).then(() => {
postMessageToParentWindow('misskey:embed:ready');
});
} else if (subBootPaths.some(i => location.pathname === i || location.pathname.startsWith(i + '/'))) {
subBoot();
} else {
mainBoot();
}