clientjs/packages/dashboard-components/src/ui/Loader.jsx
author ymh <ymh.work@gmail.com>
Mon, 17 Sep 2018 00:28:58 +0200
changeset 3 7af67d500dd5
parent 0 5f4fcbc80b37
permissions -rw-r--r--
Correct prod dicussion js url

import React, { Component } from 'react';
import PropTypes from 'prop-types';

import { connect } from 'react-redux';

import Nanobar from 'nanobar';

import './Loader.scss';

export class LoaderComponent extends Component {
  componentDidMount() {
    const opt = {
      id: 'bar-main',
      target: document.getElementById('nanobar'),
    };

    this.nanobar = new Nanobar(opt);

    // this.nanobar.go(10);
  }

  componentDidUpdate() {
    const { go } = this.props;
    this.nanobar.go(go);
  }

  render() {
    return <div id="nanobar" />;
  }
}


LoaderComponent.propTypes = {
  go: PropTypes.number.isRequired,
};

export default connect(
  (state) => {
    switch (state.annotations.isFetching) {
      case true:
        return { go: 50 };

      case false:
        return { go: 100 };
      default:
        return {};
    }
  },
)(LoaderComponent);