Skip to content

Commit e351504

Browse files
committed
Saving up work on ChatRoomEditor related files.
1 parent 5032ebf commit e351504

File tree

4 files changed

+76
-6
lines changed

4 files changed

+76
-6
lines changed

src/app/chatroom/creator/ChatRoomCreator.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
import React, { Component, useRef } from 'react'
1+
import React, { Component} from 'react'
22
import ChatRoomModal from './ChatRoomModal';
33

44
export default class ChatRoomCreator extends Component {
55

66
constructor(props) {
77
super(props);
8-
this.childRef = React.createRef();
8+
this.modalRef = React.createRef();
99
}
1010

1111
render() {
1212
return (
1313
<div>
14-
<ChatRoomModal ref={this.childRef} />
15-
<button type="button" class="btn btn-primary" onClick={() => { this.childRef.current.toggle() }}>Create ChatRoom</button>
14+
<ChatRoomModal ref={this.modalRef} chatRoomId={this.props.chatRoomId}/>
15+
16+
<button type="button" class="btn btn-primary" onClick={() => { this.modalRef.current.toggle() }}>Create ChatRoom</button>
1617
</div>
1718
)
1819
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import React, { Component } from 'react'
2+
import ChatRoomEditorModal from './ChatRoomEditorModal';
3+
import {connect} from 'react-redux';
4+
5+
class ChatRoomEditor extends Component {
6+
constructor(props){
7+
super(props);
8+
}
9+
10+
render() {
11+
return (
12+
<div>
13+
<ChatRoomEditorModal ref='modal' chatRooomId={this.props.chatRooomId}/>
14+
<button type="button" class="btn btn-primary" onClick={() => { this.refs.modal.getWrappedInstance().toggle() }}>Edit</button>
15+
</div>
16+
)
17+
}
18+
}
19+
20+
export default connect()(ChatRoomEditor);
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import React, { Component } from 'react'
2+
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
3+
import {connect} from 'react-redux';
4+
5+
6+
class ChatRoomEditorModal extends Component {
7+
constructor(props){
8+
super(props);
9+
10+
this.state = {
11+
modal: false
12+
}
13+
this.toggle = this.toggle.bind(this);
14+
}
15+
16+
toggle(){
17+
this.setState({
18+
modal: !this.state.modal
19+
})
20+
}
21+
22+
render() {
23+
return (
24+
<div>
25+
<Modal isOpen={this.state.modal} toggle={this.toggle}>
26+
<ModalHeader toggle={this.toggle}>Edit ChatRoom</ModalHeader>
27+
<ModalBody>
28+
<label>Name:</label>
29+
<input type="text" className="form-control" value={this.state.nameInput} onChange={this.handleNameInput} />
30+
<label>Description:</label>
31+
<input type="text" className="form-control" value={this.state.descInput} onChange={this.handleDescInput} />
32+
</ModalBody>
33+
<ModalFooter>
34+
<Button color="primary" onClick={this.createChatRoom}>Edit</Button>{' '}
35+
<Button color="secondary" onClick={this.toggle}>Cancel</Button>
36+
</ModalFooter>
37+
</Modal>
38+
</div>
39+
)
40+
}
41+
}
42+
43+
const mapStateToProps = (state) => ({
44+
chatRooms: state.rooms.chatRooms
45+
})
46+
47+
export default connect(mapStateToProps, null, null, {withRef: true})(ChatRoomEditorModal);

src/app/chatroom/list/ChatRoomList.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {connect} from 'react-redux';
44
import {addChatRoom, updateChatRoom, selectChatRoom} from '../../../redux/actions/ChatRoomActions';
55
import {socketSubscribe, socketSend} from '../../../redux/actions/SocketActions';
66
import {fetchUserChatRoomList, subscribeChatRoomListTopic} from './ChatRoomListAPI';
7+
import ChatRoomEditor from '../editor/ChatRoomEditor';
78

89
class ChatRoomList extends React.Component{
910
constructor(props){
@@ -23,8 +24,9 @@ class ChatRoomList extends React.Component{
2324

2425
displayList(){
2526
return this.props.chatRooms.map((chatRoom) =>
26-
<div key={chatRoom.id} onClick={() => { this.props.selectChatRoom(chatRoom.id)}}>
27-
{chatRoom.name}
27+
<div key={chatRoom.id} >
28+
<a onClick={() => { this.props.selectChatRoom(chatRoom.id)}}>{chatRoom.name}</a>
29+
<ChatRoomEditor chatRoomId={chatRoom.id}/>
2830
</div>
2931
)
3032
}

0 commit comments

Comments
 (0)