Skip to content

Commit 3692803

Browse files
committed
conflict fixed
2 parents ed7f2d2 + 717e512 commit 3692803

7 files changed

Lines changed: 63 additions & 16 deletions

File tree

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,8 @@ import { MeetingItem } from 'react-chat-elements'
637637
}
638638
]}
639639
onMeetingClick={console.log}
640-
onShareClick={console.log}/>
640+
onShareClick={console.log}
641+
onCloseClick={console.log}/>
641642
```
642643
#### MeetingItem props
643644

@@ -648,9 +649,11 @@ import { MeetingItem } from 'react-chat-elements'
648649
| date | none | date | MeetingItem date |
649650
| dateString | none | string | MeetingItem represents dateString or timeagojs(now, date) |
650651
| lazyLoadingImage | none | image path | lazy loading image |
652+
| closable | true | boolean | MeetingItem closable |
651653
| onClick | none | function | MeetingItem on click |
652654
| onMeetingClick | none | function | MeetingItem on meeting click |
653655
| onShareClick | none | function | MeetingItem on share click |
656+
| onCloseClick | none | function | MeetingItem on close click |
654657
| avatars | none | date | MeetingItem avatars |
655658
| avatarLimit | 5 | date | MeetingItem avatars limit |
656659

@@ -659,6 +662,8 @@ import { MeetingItem } from 'react-chat-elements'
659662

660663
![meetingList-photo](https://user-images.githubusercontent.com/15075759/90499889-ce201b80-e152-11ea-9cdb-7c3ef0e04b4e.png)
661664

665+
![meetingClosable](https://user-images.githubusercontent.com/53093667/90954468-2588f900-e47d-11ea-865e-10522e05f23f.gif)
666+
662667
```javascript
663668
import { MeetingList } from 'react-chat-elements'
664669

@@ -688,6 +693,7 @@ import { MeetingList } from 'react-chat-elements'
688693
| onClick | none | function | meeting list item on click (meeting(object) is returned) |
689694
| onMeetingClick | none | function | meeting list item on meeting click (meeting(object) is returned) |
690695
| onShareClick | none | function | meeting list item on share click (meeting(object) is returned) |
696+
| onCloseClick | none | function | meeting list item on close click (meeting(object) is returned) |
691697
| onContextMenu | none | function | meeting list item on context menu (meeting(object) is returned) |
692698
| onAvatarError | none | function | meeting list item on error avatar img |
693699
| lazyLoadingImage | none | image path | lazy loading image |

example/App.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ export class App extends Component {
231231
avatars: Array(this.token() + 2).fill(1).map(x => ({
232232
src: `data:image/png;base64,${this.photo()}`,
233233
})),
234+
closable: true,
234235
};
235236
}
236237
}

src/Avatar/Avatar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export class Avatar extends Component {
8282
<div
8383
className="rce-avatar-letter-background"
8484
style={{ backgroundColor: this.stringToColour(this.props.letterItem.id)}}>
85-
<span class="rce-avatar-letter">
85+
<span className="rce-avatar-letter">
8686
{this.props.letterItem.letter}
8787
</span>
8888
</div>

src/ChatItem/ChatItem.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@
7777
display: flex;
7878
flex: 1;
7979
flex-direction: column;
80-
display: flex;
8180
justify-content: center;
8281
padding-right: 15px;
8382
border-bottom: 1px solid rgba(0,0,0,.05);

src/MeetingItem/MeetingItem.css

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
background: #fbfbfb;
2222
}
2323

24+
.rce-mtitem-top {
25+
display: flex;
26+
flex-direction: row;
27+
position: relative;
28+
justify-content: space-between;
29+
}
2430

2531
.rce-mtitem-subject {
2632
padding: 0 10px;
@@ -51,7 +57,7 @@
5157
}
5258

5359
.rce-mtitem-body--functions {
54-
width: 60px;
60+
width: 70px;
5561
display: flex;
5662
align-items: center;
5763
justify-content: flex-end;
@@ -66,7 +72,7 @@
6672
}
6773

6874
.rce-mtitem-body--avatars .rce-avatar-container {
69-
margin-left: -15px;
75+
margin-left: -10px;
7076
border: 2px solid #fff;
7177
}
7278

@@ -94,6 +100,23 @@
94100
transition: 300ms;
95101
}
96102

103+
.rce-mtitem-closable {
104+
font-size: 25px;
105+
color: #fff;
106+
background:#ff4a4f;
107+
display: none;
108+
justify-content: center;
109+
align-items: center;
110+
border-radius: 100%;
111+
padding: 3px;
112+
margin-right: 7px;
113+
}
114+
115+
.rce-mtitem:hover .rce-mtitem-closable {
116+
display: flex;
117+
cursor: pointer;
118+
}
119+
97120
.rce-mtitem-share {
98121
font-size: 30px;
99122
display: flex;
@@ -102,9 +125,10 @@
102125
color: #5ba7c5;
103126
margin: -10px 0;
104127
transition: 300ms;
128+
position: relative;
129+
left: -10px;
105130
}
106131

107-
108132
.rce-mtitem-button:hover,
109133
.rce-mtitem-share:hover {
110134
opacity: 0.8;

src/MeetingItem/MeetingItem.js

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import './MeetingItem.css';
33

44
import MdVideoCall from 'react-icons/lib/md/video-call';
55
import MdLink from 'react-icons/lib/md/link';
6+
import MdCall from 'react-icons/lib/md/call';
67

78
import Avatar from '../Avatar/Avatar';
89

@@ -31,13 +32,20 @@ export class MeetingItem extends Component {
3132
onClick={this.props.onClick}
3233
onContextMenu={this.props.onContextMenu}>
3334
<div className="rce-mtitem">
34-
<div className="rce-mtitem-subject">
35-
{subject}
35+
<div className="rce-mtitem-top">
36+
<div className="rce-mtitem-subject">
37+
{subject}
38+
</div>
39+
<div
40+
className="rce-mtitem-share"
41+
onClick={this.props.onShareClick}>
42+
<MdLink />
43+
</div>
3644
</div>
3745
<div className="rce-mtitem-body">
3846
<div className="rce-mtitem-body--avatars">
3947
{
40-
this.props.avatars.slice(0, 5).map((x, i) => x instanceof Avatar ? x : (
48+
this.props.avatars.slice(0, AVATAR_LIMIT).map((x, i) => x instanceof Avatar ? x : (
4149
<Avatar
4250
key={i}
4351
src={x.src}
@@ -67,12 +75,20 @@ export class MeetingItem extends Component {
6775
this.props.avatars.length > AVATAR_LIMIT &&
6876
<div className='rce-avatar-container circle small rce-mtitem-letter'>
6977
<span>
70-
{'+' + AVATAR_LIMIT}
78+
{'+' + (this.props.avatars.length - AVATAR_LIMIT)}
7179
</span>
7280
</div>
7381
}
7482
</div>
7583
<div className="rce-mtitem-body--functions">
84+
{
85+
this.props.closable &&
86+
<div
87+
className="rce-mtitem-closable"
88+
onClick={this.props.onCloseClick}>
89+
<MdCall />
90+
</div>
91+
}
7692
<div
7793
className='rce-mtitem-button'
7894
onClick={this.props.onMeetingClick}>
@@ -81,11 +97,6 @@ export class MeetingItem extends Component {
8197
</div>
8298
</div>
8399
<div className="rce-mtitem-footer">
84-
<div
85-
className="rce-mtitem-share"
86-
onClick={this.props.onShareClick}>
87-
<MdLink />
88-
</div>
89100
<span className='rce-mtitem-date'>
90101
{dateText}
91102
</span>

src/MeetingList/MeetingList.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ export class MeetingList extends Component {
3333
this.props.onShareClick(item, i, e);
3434
}
3535

36+
onCloseClick(item, i, e) {
37+
if (this.props.onCloseClick instanceof Function)
38+
this.props.onCloseClick(item, i, e);
39+
}
40+
3641
render() {
3742
return (
3843
<div
@@ -49,7 +54,8 @@ export class MeetingList extends Component {
4954
onContextMenu={(e) => this.onContextMenu(x, i, e)}
5055
onClick={(e) => this.onClick(x, i, e)}
5156
onMeetingClick={(e) => this.onMeetingClick(x, i, e)}
52-
onShareClick={(e) => this.onShareClick(x, i, e)}/>
57+
onShareClick={(e) => this.onShareClick(x, i, e)}
58+
onCloseClick={(e) => this.onCloseClick(x, i, e)}/>
5359
))
5460
}
5561
</div>

0 commit comments

Comments
 (0)