refactor(web): reduce plugin entry filesize

release/desktop
moonrailgun 4 years ago
parent 07ece84fb1
commit 229a575ab5

@ -1,6 +1,7 @@
import React, { Fragment } from 'react'; import React, { Fragment } from 'react';
import bbcodeParser from './parser'; import bbcodeParser from './parser';
import urlRegex from 'url-regex'; import urlRegex from 'url-regex';
import '../tags/__all__';
/** /**
* *
@ -23,9 +24,11 @@ export function preProcessText(plainText: string): string {
interface BBCodeProps { interface BBCodeProps {
plainText: string; plainText: string;
} }
export const BBCode: React.FC<BBCodeProps> = React.memo(({ plainText }) => { const BBCode: React.FC<BBCodeProps> = React.memo(({ plainText }) => {
const bbcodeComponent = bbcodeParser.render(preProcessText(plainText)); const bbcodeComponent = bbcodeParser.render(preProcessText(plainText));
return <Fragment>{bbcodeComponent}</Fragment>; return <Fragment>{bbcodeComponent}</Fragment>;
}); });
BBCode.displayName = 'BBCode'; BBCode.displayName = 'BBCode';
export default BBCode;

@ -1,7 +1,11 @@
import React from 'react'; import React from 'react';
import { regMessageRender, regMessageTextDecorators } from '@capital/common'; import {
import { BBCode } from './bbcode'; Loadable,
import './tags/__all__'; regMessageRender,
regMessageTextDecorators,
} from '@capital/common';
const BBCode = Loadable(() => import('./bbcode'));
regMessageRender((message) => { regMessageRender((message) => {
return <BBCode plainText={message} />; return <BBCode plainText={message} />;

@ -1,29 +1,15 @@
import { decode, encode, isMiao } from './miaotrans'; import { regChatInputAction, openModal, Loadable } from '@capital/common';
import {
regMessageInterpreter,
regChatInputAction,
openModal,
} from '@capital/common';
import { createElement } from 'react'; import { createElement } from 'react';
import { SendMiaoModal } from './SendMiaoModal';
import { Translate } from './translate'; import { Translate } from './translate';
const miao = encode('喵语翻译已加载'); const SendMiaoModal = Loadable(() =>
const human = decode(miao); import('./SendMiaoModal').then((module) => ({
default: module.SendMiaoModal,
}))
);
console.log(`${miao}\n${human}`); // Just for reduce entry file size
import('./reg');
regMessageInterpreter({
name: Translate.miaoTrans,
explainMessage(message: string) {
// 喵语 -> 人话
if (!isMiao(message)) {
return null;
}
return decode(message);
},
});
regChatInputAction({ regChatInputAction({
label: Translate.title, label: Translate.title,

@ -0,0 +1,20 @@
import { decode, encode, isMiao } from './miaotrans';
import { regMessageInterpreter } from '@capital/common';
import { Translate } from './translate';
const miao = encode('喵语翻译已加载');
const human = decode(miao);
console.log(`${miao}\n${human}`);
regMessageInterpreter({
name: Translate.miaoTrans,
explainMessage(message: string) {
// 喵语 -> 人话
if (!isMiao(message)) {
return null;
}
return decode(message);
},
});

@ -1,7 +1,6 @@
import React from 'react'; import React from 'react';
import { regGroupPanel } from '@capital/common'; import { regGroupPanel } from '@capital/common';
import { Translate } from './translate'; import { Translate } from './translate';
import _get from 'lodash/get';
const PLUGIN_NAME = 'com.msgbyte.webview'; const PLUGIN_NAME = 'com.msgbyte.webview';
@ -12,7 +11,7 @@ const GroupWebPanelRender: React.FC<{ panelInfo: any }> = (props) => {
return <div>{Translate.notfound}</div>; return <div>{Translate.notfound}</div>;
} }
const url = _get(panelInfo, 'meta.url'); const url = panelInfo?.meta?.url;
return ( return (
<iframe key={String(url)} className="w-full h-full bg-white" src={url} /> <iframe key={String(url)} className="w-full h-full bg-white" src={url} />
@ -23,6 +22,6 @@ regGroupPanel({
name: `${PLUGIN_NAME}/grouppanel`, name: `${PLUGIN_NAME}/grouppanel`,
label: Translate.webpanel, label: Translate.webpanel,
provider: PLUGIN_NAME, provider: PLUGIN_NAME,
extraFormMeta: [{ type: 'text', name: 'url', label: '网址' }], extraFormMeta: [{ type: 'text', name: 'url', label: Translate.website }],
render: GroupWebPanelRender, render: GroupWebPanelRender,
}); });

@ -6,4 +6,8 @@ export const Translate = {
'zh-CN': '加载失败, 面板信息不存在', 'zh-CN': '加载失败, 面板信息不存在',
'en-US': 'Loading failed, panel info does not exist', 'en-US': 'Loading failed, panel info does not exist',
}), }),
website: localTrans({
'zh-CN': '网址',
'en-US': 'Website',
}),
}; };

Loading…
Cancel
Save