1
0
Fork 0
mirror of https://github.com/anyproto/anytype-ts.git synced 2025-06-07 21:47:02 +09:00
anytype-ts/extension/entry.tsx

75 lines
No EOL
1.4 KiB
TypeScript

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import $ from 'jquery';
import { C, U, J, S } from 'Lib';
import Popup from './popup';
import Iframe from './iframe';
import Auth from './auth';
import Util from './lib/util';
import './scss/common.scss';
declare global {
interface Window {
isExtension: boolean;
Electron: any;
$: any;
Anytype: any;
isWebVersion: boolean;
AnytypeGlobalConfig: any;
}
};
window.$ = $;
window.isExtension = true;
window.Electron = {
currentWindow: () => ({}),
Api: () => {},
platform: '',
};
window.Anytype = {
Lib: {
C,
U,
S,
},
};
window.AnytypeGlobalConfig = {
emojiUrl: J.Extension.clipper.emojiUrl,
menuBorderTop: 16,
menuBorderBottom: 16,
flagsMw: { request: true },
};
let rootId = '';
let component: any = null;
if (Util.isPopup()) {
rootId = `${J.Extension.clipper.prefix}-popup`;
component = <Popup />;
} else
if (Util.isIframe()) {
rootId = `${J.Extension.clipper.prefix}-iframe`;
component = <Iframe />;
} else
if (Util.isAuth()) {
rootId = `${J.Extension.clipper.prefix}-auth`;
component = <Auth />;
};
if (!rootId) {
console.error('[Entry] rootId is not defined');
} else {
const html = $('html');
const body = $('body');
const root = $(`<div id="${rootId}"></div>`);
if (!$(`#${rootId}`).length) {
body.append(root);
html.addClass(rootId);
};
ReactDOM.render(component, root.get(0));
};