summaryrefslogtreecommitdiffstats
path: root/devtools/client/performance/components/recording-list-item.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/performance/components/recording-list-item.js')
-rw-r--r--devtools/client/performance/components/recording-list-item.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/devtools/client/performance/components/recording-list-item.js b/devtools/client/performance/components/recording-list-item.js
new file mode 100644
index 000000000..37efec90d
--- /dev/null
+++ b/devtools/client/performance/components/recording-list-item.js
@@ -0,0 +1,49 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+const {DOM, createClass} = require("devtools/client/shared/vendor/react");
+const {div, li, span, button} = DOM;
+const {L10N} = require("devtools/client/performance/modules/global");
+
+module.exports = createClass({
+ displayName: "Recording List Item",
+
+ render() {
+ const {
+ label,
+ duration,
+ onSelect,
+ onSave,
+ isLoading,
+ isSelected,
+ isRecording
+ } = this.props;
+
+ const className = `recording-list-item ${isSelected ? "selected" : ""}`;
+
+ let durationText;
+ if (isLoading) {
+ durationText = L10N.getStr("recordingsList.loadingLabel");
+ } else if (isRecording) {
+ durationText = L10N.getStr("recordingsList.recordingLabel");
+ } else {
+ durationText = L10N.getFormatStr("recordingsList.durationLabel", duration);
+ }
+
+ return (
+ li({ className, onClick: onSelect },
+ div({ className: "recording-list-item-label" },
+ label
+ ),
+ div({ className: "recording-list-item-footer" },
+ span({ className: "recording-list-item-duration" }, durationText),
+ button({ className: "recording-list-item-save", onClick: onSave },
+ L10N.getStr("recordingsList.saveLabel")
+ )
+ )
+ )
+ );
+ }
+});