flipper-plugin
Version:
Flipper Desktop plugin SDK and components
52 lines • 2.54 kB
JavaScript
;
/**
* 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