refactor(web): reduce plugin entry filesize

pull/81/head
moonrailgun 3 years ago
parent 07ece84fb1
commit 229a575ab5

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

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

@ -1,29 +1,15 @@
import { decode, encode, isMiao } from './miaotrans';
import {
regMessageInterpreter,
regChatInputAction,
openModal,
} from '@capital/common';
import { regChatInputAction, openModal, Loadable } from '@capital/common';
import { createElement } from 'react';
import { SendMiaoModal } from './SendMiaoModal';
import { Translate } from './translate';
const miao = encode('喵语翻译已加载');
const human = decode(miao);
const SendMiaoModal = Loadable(() =>
import('./SendMiaoModal').then((module) => ({
default: module.SendMiaoModal,
}))
);
console.log(`${miao}\n${human}`);
regMessageInterpreter({
name: Translate.miaoTrans,
explainMessage(message: string) {
// 喵语 -> 人话
if (!isMiao(message)) {
return null;
}
return decode(message);
},
});
// Just for reduce entry file size
import('./reg');
regChatInputAction({
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 { regGroupPanel } from '@capital/common';
import { Translate } from './translate';
import _get from 'lodash/get';
const PLUGIN_NAME = 'com.msgbyte.webview';
@ -12,7 +11,7 @@ const GroupWebPanelRender: React.FC<{ panelInfo: any }> = (props) => {
return <div>{Translate.notfound}</div>;
}
const url = _get(panelInfo, 'meta.url');
const url = panelInfo?.meta?.url;
return (
<iframe key={String(url)} className="w-full h-full bg-white" src={url} />
@ -23,6 +22,6 @@ regGroupPanel({
name: `${PLUGIN_NAME}/grouppanel`,
label: Translate.webpanel,
provider: PLUGIN_NAME,
extraFormMeta: [{ type: 'text', name: 'url', label: '网址' }],
extraFormMeta: [{ type: 'text', name: 'url', label: Translate.website }],
render: GroupWebPanelRender,
});

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

Loading…
Cancel
Save