@jbrowse/plugin-linear-genome-view
Version:
JBrowse 2 linear genome view
28 lines (27 loc) • 1.51 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const configuration_1 = require("@jbrowse/core/configuration");
const ui_1 = require("@jbrowse/core/ui");
const BaseTooltip_1 = __importDefault(require("@jbrowse/core/ui/BaseTooltip"));
const mobx_react_1 = require("mobx-react");
const TooltipContents = (0, react_1.forwardRef)(function TooltipContents2({ message }, ref) {
return ((0, jsx_runtime_1.jsx)("div", { ref: ref, children: (0, react_1.isValidElement)(message) ? (message) : message ? ((0, jsx_runtime_1.jsx)(ui_1.SanitizedHTML, { html: String(message) })) : null }));
});
const Tooltip = (0, mobx_react_1.observer)(function ({ model, clientMouseCoord, }) {
const { featureUnderMouse, mouseoverExtraInformation } = model;
const x = clientMouseCoord[0] + 15;
const y = clientMouseCoord[1];
const contents = featureUnderMouse
? (0, configuration_1.getConf)(model, 'mouseover', {
feature: featureUnderMouse,
mouseoverExtraInformation,
})
: undefined;
return featureUnderMouse && contents ? ((0, jsx_runtime_1.jsx)(BaseTooltip_1.default, { clientPoint: { x, y }, children: (0, jsx_runtime_1.jsx)(TooltipContents, { message: contents }) })) : null;
});
exports.default = Tooltip;