| 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-- |
|
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 | 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); |