UNPKG

flipper-plugin

Version:

Flipper Desktop plugin SDK and components

52 lines 2.54 kB
"use strict"; /** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TimelineDataDescription = void 0; const react_1 = require("react"); const react_2 = __importDefault(require("react")); const MarkerTimeline_1 = require("../MarkerTimeline"); const antd_1 = require("antd"); const DataDescription_1 = require("./DataDescription"); const DataInspector_1 = require("./DataInspector"); class TimelineDataDescription extends react_1.Component { constructor(props) { super(props); this.state = { selected: props.timeline.current }; } render() { const moments = Object.values(this.props.timeline.time); if (moments == null || moments.length === 0) { return null; } const firstMoment = moments[0].moment; const points = moments.map((value) => ({ label: value.display, time: value.moment - firstMoment, color: Object.entries(DataDescription_1.presetColors).find(([k, _]) => k === value.color)?.[1] ?? value.color, key: value.key, })); const properties = this.props.timeline.time.find((value) => value.key === this.state.selected)?.properties; return (react_2.default.createElement(react_2.default.Fragment, null, this.props.canSetCurrent && (react_2.default.createElement("div", null, react_2.default.createElement(antd_1.Button, { onClick: () => this.props.onClick?.(this.state.selected), disabled: this.state.selected === this.props.timeline.current }, "Set as current"))), react_2.default.createElement("div", { style: { userSelect: 'none' } }, react_2.default.createElement(MarkerTimeline_1.MarkerTimeline, { points: points, onClick: (ids) => { this.setState({ selected: ids[0] }); this.props.onClick?.(ids[0]); }, maxGap: 50, selected: this.state.selected })), properties && react_2.default.createElement(DataInspector_1.DataInspector, { data: properties }))); } } exports.TimelineDataDescription = TimelineDataDescription; //# sourceMappingURL=TimelineDataDescription.js.map