@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
21 lines (20 loc) • 903 B
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { isValidElement } from 'react';
import { Link } from '@mui/material';
import { SanitizedHTML } from "../../ui/index.js";
import { isObject } from "../../util/index.js";
import { makeStyles } from "../../util/tss-react/index.js";
const useStyles = makeStyles()(theme => ({
fieldValue: {
wordBreak: 'break-word',
maxHeight: 300,
fontSize: 12,
padding: theme.spacing(0.5),
overflow: 'auto',
},
}));
export default function BasicValue({ value }) {
const { classes } = useStyles();
const isLink = /^https?:\/\//.exec(`${value}`);
return (_jsx("div", { className: classes.fieldValue, children: isValidElement(value) ? (value) : isLink ? (_jsx(Link, { href: `${value}`, children: `${value}` })) : (_jsx(SanitizedHTML, { html: isObject(value) ? JSON.stringify(value) : String(value) })) }));
}