summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/src/components/A11yIntention.js
blob: fab894b21657a8a6ad4c8a14ffdd5d52f9f37ee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* 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 React from "react";
import PropTypes from "prop-types";
import "./A11yIntention.css";

export default class A11yIntention extends React.Component {
  static get propTypes() {
    return {
      children: PropTypes.array.isRequired,
    };
  }

  state = { keyboard: false };

  handleKeyDown = () => {
    this.setState({ keyboard: true });
  };

  handleMouseDown = () => {
    this.setState({ keyboard: false });
  };

  render() {
    return (
      <div
        className={this.state.keyboard ? "A11y-keyboard" : "A11y-mouse"}
        onKeyDown={this.handleKeyDown}
        onMouseDown={this.handleMouseDown}
      >
        {this.props.children}
      </div>
    );
  }
}