tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

AnimationToolbar.js (2372B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 "use strict";
      6 
      7 const {
      8  createFactory,
      9  PureComponent,
     10 } = require("resource://devtools/client/shared/vendor/react.mjs");
     11 const dom = require("resource://devtools/client/shared/vendor/react-dom-factories.js");
     12 const PropTypes = require("resource://devtools/client/shared/vendor/react-prop-types.mjs");
     13 
     14 const CurrentTimeLabel = createFactory(
     15  require("resource://devtools/client/inspector/animation/components/CurrentTimeLabel.js")
     16 );
     17 const PauseResumeButton = createFactory(
     18  require("resource://devtools/client/inspector/animation/components/PauseResumeButton.js")
     19 );
     20 const PlaybackRateSelector = createFactory(
     21  require("resource://devtools/client/inspector/animation/components/PlaybackRateSelector.js")
     22 );
     23 const RewindButton = createFactory(
     24  require("resource://devtools/client/inspector/animation/components/RewindButton.js")
     25 );
     26 
     27 class AnimationToolbar extends PureComponent {
     28  static get propTypes() {
     29    return {
     30      addAnimationsCurrentTimeListener: PropTypes.func.isRequired,
     31      animations: PropTypes.arrayOf(PropTypes.object).isRequired,
     32      removeAnimationsCurrentTimeListener: PropTypes.func.isRequired,
     33      rewindAnimationsCurrentTime: PropTypes.func.isRequired,
     34      setAnimationsPlaybackRate: PropTypes.func.isRequired,
     35      setAnimationsPlayState: PropTypes.func.isRequired,
     36      timeScale: PropTypes.object.isRequired,
     37    };
     38  }
     39 
     40  render() {
     41    const {
     42      addAnimationsCurrentTimeListener,
     43      animations,
     44      removeAnimationsCurrentTimeListener,
     45      rewindAnimationsCurrentTime,
     46      setAnimationsPlaybackRate,
     47      setAnimationsPlayState,
     48      timeScale,
     49    } = this.props;
     50 
     51    return dom.div(
     52      {
     53        className: "animation-toolbar devtools-toolbar",
     54      },
     55      RewindButton({
     56        rewindAnimationsCurrentTime,
     57      }),
     58      PauseResumeButton({
     59        animations,
     60        setAnimationsPlayState,
     61      }),
     62      PlaybackRateSelector({
     63        animations,
     64        setAnimationsPlaybackRate,
     65      }),
     66      CurrentTimeLabel({
     67        addAnimationsCurrentTimeListener,
     68        removeAnimationsCurrentTimeListener,
     69        timeScale,
     70      })
     71    );
     72  }
     73 }
     74 
     75 module.exports = AnimationToolbar;