summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/src/components/WelcomeBox.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/debugger/src/components/WelcomeBox.js')
-rw-r--r--devtools/client/debugger/src/components/WelcomeBox.js137
1 files changed, 137 insertions, 0 deletions
diff --git a/devtools/client/debugger/src/components/WelcomeBox.js b/devtools/client/debugger/src/components/WelcomeBox.js
new file mode 100644
index 0000000000..cdb1d6c23e
--- /dev/null
+++ b/devtools/client/debugger/src/components/WelcomeBox.js
@@ -0,0 +1,137 @@
+/* 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/>. */
+
+import { Component } from "devtools/client/shared/vendor/react";
+import {
+ div,
+ p,
+ span,
+} from "devtools/client/shared/vendor/react-dom-factories";
+import PropTypes from "devtools/client/shared/vendor/react-prop-types";
+
+import { connect } from "devtools/client/shared/vendor/react-redux";
+import { primaryPaneTabs } from "../constants";
+
+import actions from "../actions/index";
+import { getPaneCollapse } from "../selectors/index";
+import { formatKeyShortcut } from "../utils/text";
+
+export class WelcomeBox extends Component {
+ static get propTypes() {
+ return {
+ openQuickOpen: PropTypes.func.isRequired,
+ setActiveSearch: PropTypes.func.isRequired,
+ toggleShortcutsModal: PropTypes.func.isRequired,
+ setPrimaryPaneTab: PropTypes.func.isRequired,
+ };
+ }
+
+ render() {
+ const searchSourcesShortcut = formatKeyShortcut(
+ L10N.getStr("sources.search.key2")
+ );
+
+ const searchProjectShortcut = formatKeyShortcut(
+ L10N.getStr("projectTextSearch.key")
+ );
+
+ const allShortcutsShortcut = formatKeyShortcut(
+ L10N.getStr("allShortcut.key")
+ );
+
+ const allShortcutsLabel = L10N.getStr("welcome.allShortcuts");
+ const searchSourcesLabel = L10N.getStr("welcome.search2").substring(2);
+ const searchProjectLabel = L10N.getStr("welcome.findInFiles2").substring(2);
+
+ return div(
+ {
+ className: "welcomebox",
+ },
+ div(
+ {
+ className: "alignlabel",
+ },
+ div(
+ {
+ className: "shortcutFunction",
+ },
+ p(
+ {
+ className: "welcomebox__searchSources",
+ role: "button",
+ tabIndex: "0",
+ onClick: () => this.props.openQuickOpen(),
+ },
+ span(
+ {
+ className: "shortcutKey",
+ },
+ searchSourcesShortcut
+ ),
+ span(
+ {
+ className: "shortcutLabel",
+ },
+ searchSourcesLabel
+ )
+ ),
+ p(
+ {
+ className: "welcomebox__searchProject",
+ role: "button",
+ tabIndex: "0",
+ onClick: () => {
+ this.props.setActiveSearch(primaryPaneTabs.PROJECT_SEARCH);
+ this.props.setPrimaryPaneTab(primaryPaneTabs.PROJECT_SEARCH);
+ },
+ },
+ span(
+ {
+ className: "shortcutKey",
+ },
+ searchProjectShortcut
+ ),
+ span(
+ {
+ className: "shortcutLabel",
+ },
+ searchProjectLabel
+ )
+ ),
+ p(
+ {
+ className: "welcomebox__allShortcuts",
+ role: "button",
+ tabIndex: "0",
+ onClick: () => this.props.toggleShortcutsModal(),
+ },
+ span(
+ {
+ className: "shortcutKey",
+ },
+ allShortcutsShortcut
+ ),
+ span(
+ {
+ className: "shortcutLabel",
+ },
+ allShortcutsLabel
+ )
+ )
+ )
+ )
+ );
+ }
+}
+
+const mapStateToProps = state => ({
+ endPanelCollapsed: getPaneCollapse(state, "end"),
+});
+
+export default connect(mapStateToProps, {
+ togglePaneCollapse: actions.togglePaneCollapse,
+ setActiveSearch: actions.setActiveSearch,
+ openQuickOpen: actions.openQuickOpen,
+ setPrimaryPaneTab: actions.setPrimaryPaneTab,
+})(WelcomeBox);