hellowin/kanca

View on GitHub
src/domain/metric/component/UserProfileSummary.js

Summary

Maintainability
A
1 hr
Test Coverage
// @flow
import React from 'react';
import Card from 'infra/component/Card';
import { extractDateRange } from '../service/timeRangeMetric';
import type { TimeRangeMetric } from '../service/timeRangeMetric';
import { timeRangeToString } from 'infra/service/util';

class UserProfileSummary extends React.Component {

  props: {
    metric: TimeRangeMetric,
    userId: string,
  }

  render () {
    const { metric, userId } = this.props;
    const userMetric = metric.usersMetric.getById(userId);

    const { dateStart, dateEnd } = extractDateRange(userMetric.posts, userMetric.comments, 'd');
    const dateString = timeRangeToString(dateStart, dateEnd);

    return (
      <Card title="User Summary">
        <p>{dateString}</p>
        <dl>
          <dt><i className="fa fa-pencil-square-o mr-1" />Posts</dt>
          <dd>
            Total: {userMetric.postsCount}<br />
            Likes: {userMetric.postsLikesCount}<br />
            Shares: {userMetric.postsSharesCount}<br />
          </dd>

          <dt><i className="fa fa-commenting mr-1" />Comments</dt>
          <dd>
            Total: {userMetric.commentsCount}
          </dd>

          <dt><i className="fa fa-star mr-1" />Score</dt>
          <dd>
            Total: {userMetric.getScore()}
          </dd>

        </dl>
      </Card>
    );
  }

}

export default UserProfileSummary;