client/src/components/SessionSummary.js
author ymh <ymh.work@gmail.com>
Thu, 20 Jul 2017 11:23:08 +0200
changeset 124 c77570164050
parent 77 cd27d9fc1c73
child 125 c653f49fabfb
permissions -rw-r--r--
implement soft delete and indicator that session and notes have been modiied
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
63
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     1
import React, { Component } from 'react';
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     2
import { connect } from 'react-redux';
77
cd27d9fc1c73 some linting
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
     3
import { ListGroup, ListGroupItem } from 'react-bootstrap';
63
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     4
import _ from 'lodash';
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     5
import '../App.css';
74
043477fd5c5c add api call to save notes. internally use ts for time data for notes and session
ymh <ymh.work@gmail.com>
parents: 73
diff changeset
     6
import {formatTimestamp} from '../utils';
63
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     7
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     8
class SessionSummary extends Component {
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     9
  render() {
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    10
    return (
73
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    11
      <ListGroup>
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    12
        {this.props.notes.map((note) =>
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    13
          <ListGroupItem key={note.get('_id')}>
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    14
            <a href={'#note-' + note.get('_id')}>
74
043477fd5c5c add api call to save notes. internally use ts for time data for notes and session
ymh <ymh.work@gmail.com>
parents: 73
diff changeset
    15
              <span className="text-muted">{formatTimestamp(note.startedAt)}  {formatTimestamp(note.finishedAt)}</span>
73
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    16
              <span className="pull-right">{_.words(note.plain).length} words</span>
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    17
            </a>
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    18
          </ListGroupItem>
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    19
        )}
7e8cdc74d86f Make session summary scrollable.
Alexandre Segura <mex.zktk@gmail.com>
parents: 63
diff changeset
    20
      </ListGroup>
63
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    21
    );
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    22
  }
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    23
}
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    24
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    25
function mapStateToProps(state, props) {
124
c77570164050 implement soft delete and indicator that session and notes have been modiied
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
    26
    return {
c77570164050 implement soft delete and indicator that session and notes have been modiied
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
    27
    ...props,
c77570164050 implement soft delete and indicator that session and notes have been modiied
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
    28
    notes : props.notes.filter(note => !note.deleted)
c77570164050 implement soft delete and indicator that session and notes have been modiied
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
    29
  };
63
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    30
}
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    31
4088f8dc6b52 Improve session page layout, introduce summary.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    32
export default connect(mapStateToProps)(SessionSummary);