/
alt3rmann
/
label-studio
Обзор
Документация
Войти
/
alt3rmann
/
label-studio
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
web/libs/editor/src/components/TextHighlight/Node.jsx
60 строк
2 KB
yyassi-heartex
chore: OPTIC-1154: biome linting tweaks (#6425)
22 окт 2024, 23:22
Не верифицирован
22 окт 2024, 23:22
7ed55c6
Код
Авторство
О чём код?
import { inject, observer } from "mobx-react"; import TextNode from "../TextNode/TextNode"; import Utils from "../../utils"; const HtxTextNodeView = ({ store, range, id, highlightStyle, style, charIndex, children, overlap }) => { const getStyle = (range) => (range ? highlightStyle : style); const getRangeKey = () => `${id}-${range.start}-${charIndex}`; const getNormalKey = () => `${id}-${charIndex}`; const getKey = (range) => (range ? getRangeKey() : getNormalKey()); let wrapper = ( <span data-position={charIndex} key={getKey(range)} style={getStyle(range)}> {children} </span> ); if (overlap && overlap.length) { let bg; if (range.states) { range.states.forEach((i) => { bg = Utils.Colors.convertToRGBA(i.getSelectedColor(), 0.3); }); } store.annotationStore.selected.regionStore.regions.forEach((i) => { if (i.selected) { overlap.forEach((overlapItem) => { if (overlapItem === i.id) { bg = "#ff4d4f"; } }); } if (i.highlighted && overlap.includes(i.id)) { bg = "#ff4d4f"; } }); wrapper = overlap.reduceRight((value, key) => { return ( <TextNode style={{ background: bg, padding: "2px 0" }} position={charIndex} overlap={key} keyNode={getKey(range)} > {value} </TextNode> ); }, children); } return wrapper; }; const HtxTextNode = inject("store")(observer(HtxTextNodeView)); export { HtxTextNode };