| author | ymh <ymh.work@gmail.com> |
| Tue, 13 Nov 2018 16:46:15 +0100 | |
| changeset 172 | 4b780ebbedc6 |
| parent 170 | 7da1d5137b0b |
| child 191 | 3f71ad81a5a9 |
| permissions | -rw-r--r-- |
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
1 |
import React, { Component } from 'react'; |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
2 |
import { connect } from 'react-redux'; |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
3 |
import { bindActionCreators } from 'redux'; |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
4 |
import '../App.css'; |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
5 |
import * as sessionsActions from '../actions/sessionsActions'; |
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
46
diff
changeset
|
6 |
import * as authActions from '../actions/authActions'; |
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
7 |
import _ from 'lodash'; |
|
135
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
8 |
import './SessionForm.css'; |
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
9 |
|
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
10 |
class SessionForm extends Component { |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
11 |
|
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
46
diff
changeset
|
12 |
state = { |
|
135
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
13 |
createGroup: false, |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
14 |
protocolOpen: false, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
15 |
titleEditMode: false, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
16 |
descriptionEditMode: false, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
17 |
enterKeyValue: false, |
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
18 |
} |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
19 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
20 |
onChange = (e) => { |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
21 |
const { name, value } = e.target; |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
22 |
const changes = { [name]: value } |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
23 |
this.onChangeThrottle(changes); |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
24 |
} |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
25 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
26 |
onChangeThrottle = _.debounce((changes) => { |
| 169 | 27 |
this.props.sessionsActions.updateSession(this.props.currentSession._id, changes); |
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
28 |
}, 750) |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
29 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
30 |
onGroupChange = (e) => { |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
31 |
const groupName = e.target.value; |
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
32 |
|
|
168
ea92f4fe783d
- move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents:
164
diff
changeset
|
33 |
const group = this.props.groups.find((g) => g.name === groupName); |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
34 |
|
|
168
ea92f4fe783d
- move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents:
164
diff
changeset
|
35 |
this.props.sessionsActions.updateSession(this.props.currentSession, { group: groupName, protocol: group?group.protocol:'' }); |
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
36 |
} |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
37 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
38 |
componentDidMount() { |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
39 |
document.addEventListener('mousedown', this.handleClickOutside); |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
40 |
} |
|
133
6f3078f7fd47
Work on correct protocol propagation
ymh <ymh.work@gmail.com>
parents:
132
diff
changeset
|
41 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
42 |
componentWillUnmount() { |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
43 |
document.removeEventListener('mousedown', this.handleClickOutside); |
|
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
44 |
} |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
45 |
|
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
46 |
componentWillUpdate = (nextProps, nextState) => { |
|
168
ea92f4fe783d
- move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents:
164
diff
changeset
|
47 |
if (nextState.createGroup && nextProps.createGroup.success) { |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
48 |
this.setState({ createGroup: false }) |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
49 |
} |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
50 |
} |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
51 |
|
|
135
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
52 |
toggleProtocol = (e) => { |
|
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
53 |
e.preventDefault(); |
|
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
54 |
this.setState({ |
|
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
55 |
protocolOpen: !this.state.protocolOpen |
|
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
56 |
}); |
|
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
57 |
} |
|
b5aafa462956
Cleaning session form. The group and protocol are no longer editable. Removing cruft
ymh <ymh.work@gmail.com>
parents:
134
diff
changeset
|
58 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
59 |
toggleOnTitleEditMode = () => { |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
60 |
this.setState({ |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
61 |
titleEditMode: true, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
62 |
}); |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
63 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
64 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
65 |
toggleOnDescriptionEditMode = () => { |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
66 |
this.setState({ |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
67 |
descriptionEditMode: true, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
68 |
}); |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
69 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
70 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
71 |
toggleOffTitleEditMode = () => { |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
72 |
this.setState({ |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
73 |
titleEditMode: false, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
74 |
}); |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
75 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
76 |
|
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
77 |
toggleOffDescriptionEditMode = () => { |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
78 |
this.setState({ |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
79 |
descriptionEditMode: false, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
80 |
}); |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
81 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
82 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
83 |
handleClickOutside = (e) => { |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
84 |
if (this.title && !this.title.contains(e.target)) { |
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
85 |
this.toggleOffTitleEditMode() |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
86 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
87 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
88 |
if (this.desc && !this.desc.contains(e.target)) { |
|
164
30a5baa31314
Fix SessionForm component edit mode
salimr <riwad.salim@yahoo.fr>
parents:
161
diff
changeset
|
89 |
this.toggleOffDescriptionEditMode() |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
90 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
91 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
92 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
93 |
saveEdit = (e) => { |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
94 |
|
| 169 | 95 |
// e.preventDefault(); |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
96 |
|
| 169 | 97 |
// if (e.key === 'Enter') { |
98 |
// this.setState({enterKeyValue: true}) |
|
99 |
// } |
|
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
100 |
|
| 169 | 101 |
// if (e.key !== 'Enter') { |
102 |
// this.setState({enterKeyValue: false}) |
|
103 |
// } |
|
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
104 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
105 |
if (e.key === 'Enter' && this.state.enterKeyValue === true) { |
| 169 | 106 |
|
107 |
e.preventDefault(); |
|
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
108 |
this.setState({ |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
109 |
enterKeyValue: false, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
110 |
titleEditMode: false, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
111 |
descriptionEditMode: false, |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
112 |
}) |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
113 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
114 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
115 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
116 |
titleEditMode = () => { |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
117 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
118 |
if (this.state.titleEditMode === false) { |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
119 |
return ( |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
120 |
<div |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
121 |
onClick={this.toggleOnTitleEditMode} |
|
170
7da1d5137b0b
Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
122 |
className='session-page-title border-0 bg-irinotes-headers text-muted ml-3' |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
123 |
> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
124 |
{ this.props.currentSession.title || 'Espace titre' } |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
125 |
</div> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
126 |
); |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
127 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
128 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
129 |
if (this.state.titleEditMode === true) { |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
130 |
return ( |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
131 |
<div className="form-group pr-5"> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
132 |
<textarea className='session-page-title form-control border-primary bg-secondary text-muted ml-3' |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
133 |
onKeyDown={ this.saveEdit } |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
134 |
onChange={ this.onChange } |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
135 |
type="textarea" |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
136 |
name="title" |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
137 |
defaultValue={ this.props.currentSession.title || 'Espace titre' } |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
138 |
placeholder="Espace titre" |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
139 |
ref={title => this.title = title} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
140 |
> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
141 |
</textarea> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
142 |
</div> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
143 |
); |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
144 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
145 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
146 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
147 |
descriptionEditMode = () => { |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
148 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
149 |
if (this.state.descriptionEditMode === false) { |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
150 |
return ( |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
151 |
<div |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
152 |
onClick={this.toggleOnDescriptionEditMode} |
|
170
7da1d5137b0b
Upgrade dependencies and correct theme colors
ymh <ymh.work@gmail.com>
parents:
169
diff
changeset
|
153 |
className="session-page-description border-0 bg-irinotes-headers text-muted ml-3" |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
154 |
> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
155 |
{ this.props.currentSession.description || 'Espace description' } |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
156 |
</div> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
157 |
); |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
158 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
159 |
|
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
160 |
if (this.state.descriptionEditMode === true) { |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
161 |
return ( |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
162 |
<div className="form-group mt-2 pb-2"> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
163 |
<textarea className="session-page-description form-control border-primary bg-secondary text-muted ml-3" |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
164 |
onKeyDown={ this.saveEdit } |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
165 |
onChange={ this.onChange } |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
166 |
type="textarea" |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
167 |
name="description" |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
168 |
defaultValue={ this.props.currentSession.description || 'Espace description' } |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
169 |
placeholder="Espace description" |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
170 |
ref={desc => this.desc = desc} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
171 |
> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
172 |
</textarea> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
173 |
</div> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
174 |
); |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
175 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
176 |
} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
177 |
|
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
178 |
render() { |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
179 |
|
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
180 |
if (!this.props.currentSession) { |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
181 |
return ( |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
182 |
<form></form> |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
183 |
) |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
184 |
} |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
185 |
|
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
186 |
return ( |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
187 |
<div className="session-page-panel panel-default sticky-top"> |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
188 |
<div className="session-page-card card-body bg-secondary pr-5"> |
|
143
cfcbf4bc66f1
Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents:
135
diff
changeset
|
189 |
<form onSubmit={ e => { e.preventDefault() } }> |
|
161
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
190 |
{this.titleEditMode()} |
|
a642639dbc07
Split scss files and adapt session page design
salimr <riwad.salim@yahoo.fr>
parents:
151
diff
changeset
|
191 |
{this.descriptionEditMode()} |
|
143
cfcbf4bc66f1
Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents:
135
diff
changeset
|
192 |
</form> |
|
cfcbf4bc66f1
Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents:
135
diff
changeset
|
193 |
</div> |
|
cfcbf4bc66f1
Remove react-bootstrap from components except Modal, Collapse and Dropdown
salimr <riwad.salim@yahoo.fr>
parents:
135
diff
changeset
|
194 |
</div> |
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
195 |
); |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
196 |
} |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
197 |
} |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
198 |
|
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
199 |
function mapStateToProps(state, props) { |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
200 |
|
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
201 |
let group; |
|
168
ea92f4fe783d
- move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents:
164
diff
changeset
|
202 |
if (props.session && props.session.group) { |
|
ea92f4fe783d
- move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents:
164
diff
changeset
|
203 |
group = state.groups.find(group => props.session.group === group.name) |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
204 |
} |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
205 |
|
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
206 |
return { |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
207 |
currentSession: props.session, |
|
168
ea92f4fe783d
- move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents:
164
diff
changeset
|
208 |
createGroup: state.createGroup, |
|
ea92f4fe783d
- move SlateEditor and dependencies to its own folder
ymh <ymh.work@gmail.com>
parents:
164
diff
changeset
|
209 |
groups: state.groups, |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
210 |
group |
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
211 |
}; |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
212 |
} |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
213 |
|
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
214 |
function mapDispatchToProps(dispatch) { |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
215 |
return { |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
216 |
sessionsActions: bindActionCreators(sessionsActions, dispatch), |
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
46
diff
changeset
|
217 |
authActions: bindActionCreators(authActions, dispatch), |
|
46
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
218 |
} |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
219 |
} |
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
220 |
|
|
4aa24724e5b3
Move session form to dedicated component.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
221 |
export default connect(mapStateToProps, mapDispatchToProps)(SessionForm); |