equal
deleted
inserted
replaced
1 import React, { Component } from 'react'; |
1 import React, { Component } from 'react'; |
2 import { connect } from 'react-redux'; |
|
3 import { bindActionCreators } from 'redux'; |
|
4 import PropTypes from 'prop-types'; |
2 import PropTypes from 'prop-types'; |
5 import Immutable from 'immutable'; |
3 import Immutable from 'immutable'; |
6 import { Alert, Modal, Button } from 'react-bootstrap'; |
4 import { Alert, Modal, Button } from 'react-bootstrap'; |
7 import Note from './Note'; |
5 import Note from './Note'; |
8 import * as notesActions from '../actions/notesActions'; |
|
9 |
6 |
10 class NotesList extends Component { |
7 class NotesList extends Component { |
11 |
8 |
12 state = { |
9 state = { |
13 editingNote: null, |
10 editingNote: null, |
30 }) |
27 }) |
31 } |
28 } |
32 |
29 |
33 deleteNote = () => { |
30 deleteNote = () => { |
34 const { noteToDelete } = this.state; |
31 const { noteToDelete } = this.state; |
35 this.props.notesActions.deleteNote(noteToDelete); |
32 this.props.deleteNote(noteToDelete); |
36 this.closeModal(); |
33 this.closeModal(); |
37 } |
34 } |
38 |
35 |
39 closeModal = () => { |
36 closeModal = () => { |
40 this.setState({ |
37 this.setState({ |
42 noteToDelete: null |
39 noteToDelete: null |
43 }) |
40 }) |
44 } |
41 } |
45 |
42 |
46 updateNote = (note, data) => { |
43 updateNote = (note, data) => { |
47 this.props.notesActions.updateNote(note, data); |
44 this.props.updateNote(note, data); |
48 } |
45 } |
49 |
46 |
50 render() { |
47 render() { |
51 if (this.props.notes.size === 0) { |
48 if (this.props.notes.size === 0) { |
52 return ( |
49 return ( |
85 |
82 |
86 NotesList.propTypes = { |
83 NotesList.propTypes = { |
87 notes: PropTypes.instanceOf(Immutable.List).isRequired |
84 notes: PropTypes.instanceOf(Immutable.List).isRequired |
88 }; |
85 }; |
89 |
86 |
90 function mapStateToProps(state, props) { |
87 export default NotesList; |
91 return { |
|
92 ...props, |
|
93 notes : props.notes.filter(note => !note.deleted) |
|
94 }; |
|
95 } |
|
96 |
|
97 function mapDispatchToProps(dispatch) { |
|
98 return { |
|
99 notesActions: bindActionCreators(notesActions, dispatch), |
|
100 } |
|
101 } |
|
102 |
|
103 export default connect(mapStateToProps, mapDispatchToProps)(NotesList); |
|