jjb-lc-designable
Version:
基于alibaba-designable源码二次封装的表单设计器。
24 lines • 945 B
JavaScript
import React, { Fragment } from 'react';
import { isStr, isPlainObj } from 'jjb-lc-designable/shared';
import { GlobalRegistry } from 'jjb-lc-designable/core';
import { observer } from 'jjb-lc-formily/reactive-react';
export const TextWidget = observer(props => {
const takeLocale = message => {
if (isStr(message)) return message;
if (isPlainObj(message)) {
const lang = GlobalRegistry.getDesignerLanguage();
for (let key in message) {
if (key.toLocaleLowerCase() === lang) return message[key];
}
return;
}
return message;
};
const takeMessage = token => {
if (!token) return;
const message = isStr(token) ? GlobalRegistry.getDesignerMessage(token) : token;
if (message) return takeLocale(message);
return token;
};
return /*#__PURE__*/React.createElement(Fragment, null, takeMessage(props.children) || takeMessage(props.token) || takeMessage(props.defaultMessage));
});