label-studio
Version:
Data Labeling Tool that is backend agnostic and can be embedded into your applications
45 lines (37 loc) • 1.32 kB
JavaScript
import React from "react";
import { types } from "mobx-state-tree";
import { observer } from "mobx-react";
import { Typography } from "antd";
import ProcessAttrsMixin from "../../mixins/ProcessAttrs";
import Registry from "../../core/Registry";
import Tree from "../../core/Tree";
/**
* Header tag, show header
* @example
* <Header name="text-1" value="$text"></Header>
* @name Header
* @param {number} [size=4] Size of header
* @param {string} value Text of header
* @param {style} style css style string
* @param {boolean} [underline=false] Underline of header
*/
const Model = types.model({
type: "header",
size: types.optional(types.string, "4"),
style: types.maybeNull(types.string),
_value: types.optional(types.string, ""),
value: types.optional(types.string, ""),
underline: types.optional(types.boolean, false),
});
const HeaderModel = types.compose("HeaderModel", Model, ProcessAttrsMixin);
const HtxHeader = observer(({ item }) => {
const size = parseInt(item.size);
const style = item.style ? Tree.cssConverter(item.style) : { margin: "10px 0" };
return (
<Typography.Title underline={item.underline} level={size} style={style}>
{item._value}
</Typography.Title>
);
});
Registry.addTag("header", HeaderModel, HtxHeader);
export { HtxHeader, HeaderModel };