feat: ノート・ユーザTL埋め込み

This commit is contained in:
kakkokari-gtyih
2024-06-02 00:03:46 +09:00
parent f80c5d26b5
commit e1a541d60b
14 changed files with 277 additions and 84 deletions

View File

@@ -7,21 +7,33 @@
import 'vite/modulepreload-polyfill';
import '@/style.scss';
import type { CommonBootOptions } from '@/boot/common.js';
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', '/embed'];
const subBootPaths = ['/share', '/auth', '/miauth', '/signup-complete'];
if (subBootPaths.some(i => location.pathname === i || location.pathname.startsWith(i + '/'))) {
if (isEmbedPage()) {
const params = new URLSearchParams(location.search);
const color = params.get('color');
if (color && ['light', 'dark'].includes(color)) {
subBoot({ forceColorMode: color as 'light' | 'dark' });
}
if (isEmbedPage()) {
const bootOptions: Partial<CommonBootOptions> = {};
const params = new URLSearchParams(location.search);
const color = params.get('color');
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();