Skip to content

Commit dde81f9

Browse files
authored
Merge pull request #172 from Detaysoft/meeting-link
meeting link changes
2 parents 18b0b31 + 5151233 commit dde81f9

7 files changed

Lines changed: 46 additions & 19 deletions

File tree

example/utils/MessageTypes.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import loremIpsum from 'lorem-ipsum'
22
import { MessageType } from '../../src/type'
33
import { getRandomColor, photo, token } from './common'
4+
import { MdOutlineVideoCall } from 'react-icons/md'
45

56
export const photoMessage: MessageType = {
67
type: 'photo',
@@ -320,6 +321,20 @@ export const meetingMessage: MessageType = {
320321

321322
export const meetingLinkMessage: MessageType = {
322323
type: 'meetingLink',
324+
actionButtons: [
325+
{
326+
onClickButton(id) {
327+
console.log(id)
328+
},
329+
Component: () => MdOutlineVideoCall({ size: '25px' }),
330+
},
331+
{
332+
onClickButton(id) {
333+
console.log(id)
334+
},
335+
Component: () => MdOutlineVideoCall({ size: '25px' }),
336+
},
337+
],
323338
meetingID: String(Math.random()),
324339
id: String(Math.random()),
325340
position: token() >= 1 ? 'right' : 'left',

example/utils/common.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const getRandomColor = () => {
1818
}
1919

2020
export const token = () => {
21-
return Math.floor((Math.random() * 10) % 8)
21+
return Math.floor((Math.random() * 10) % 9)
2222
}
2323

2424
export function useForceUpdate() {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-chat-elements",
3-
"version": "12.0.0",
3+
"version": "12.0.1",
44
"description": "Reactjs chat components",
55
"author": "Avare Kodcu <abdurrahmaneker58@gmail.com>",
66
"main": "dist/main.js",

src/MeetingLink/MeetingLink.css

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
.rce-mtlink-content {
77
background-color: #e2dfec;
8-
border-radius: 100px;
8+
border-radius: 4px;
99
padding: 10px;
1010
display: flex;
1111
align-items: center;
@@ -32,14 +32,16 @@
3232

3333
.rce-mtlink-btn {
3434
background: #ededed;
35-
border-radius: 50%;
36-
margin-left: 15px;
35+
border-radius: 4px;
3736
display: flex;
38-
padding: 7px;
39-
cursor: pointer;
37+
margin-left: 5px;
4038
}
4139

42-
.rce-mtlink-svg {
43-
color: #585858;
44-
font-size: 16px;
40+
.rce-mtlink-btn-content {
41+
padding: 4px;
42+
cursor: pointer;
43+
border-right: 1px solid;
44+
}
45+
.rce-mtlink-btn-content:last-child {
46+
border-right: none;
4547
}

src/MeetingLink/MeetingLink.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
import { FC } from 'react'
22
import './MeetingLink.css'
33

4-
import { MdOutlineVideoCall } from 'react-icons/md'
5-
import { IMeetingLinkMessageProps } from '../type'
4+
import { IMeetingLinkMessageProps, MeetingLinkActionButtons } from '../type'
65

76
const MeetingLink: FC<IMeetingLinkMessageProps> = props => {
8-
const onHandleClick = (): void => {
9-
props.onMeetingLinkClick?.(props.meetingID || '')
10-
}
11-
127
return (
13-
<div className='rce-mtlink' onClick={onHandleClick}>
8+
<div className='rce-mtlink'>
149
<div className='rce-mtlink-content'>
1510
<div className='rce-mtlink-item'>
1611
<div className='rce-mtlink-title'>{props.text}</div>
1712
</div>
1813
<div className='rce-mtlink-btn'>
19-
<MdOutlineVideoCall className='rce-mtlink-svg' />
14+
{props.actionButtons.map((Item: MeetingLinkActionButtons) => {
15+
return (
16+
<div className='rce-mtlink-btn-content' onClick={() => Item.onClickButton(props.meetingID)}>
17+
<Item.Component />
18+
</div>
19+
)
20+
})}
2021
</div>
2122
</div>
2223
</div>

src/MessageBox/MessageBox.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@
216216
font-size: 12px;
217217
right: -4px;
218218
bottom: -5px;
219+
user-select: none;
219220
}
220221

221222
.rce-mbox-time.non-copiable:before {

src/type.d.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,14 @@ export interface IMeetingLinkMessage extends IMessage {
628628
meetingID?: string
629629
}
630630

631+
export type TActionButton = React.FunctionComponent<any>
632+
633+
export interface MeetingLinkActionButtons {
634+
// return meeting id
635+
onClickButton: (id: string) => void
636+
Component: TActionButton
637+
}
638+
631639
/**
632640
* IMeetingLinkMessageProps Interface
633641
* @prop type The Meeting Link Message's type is "meetingLink" and required.
@@ -636,7 +644,7 @@ export interface IMeetingLinkMessage extends IMessage {
636644
* @prop onMeetingMoreSelect The Meeting More Select Message's function onMeetingMoreSelect(event: React.MouseEvent<T, MouseEvent>) and optional.
637645
*/
638646
export interface IMeetingLinkMessageProps extends IMeetingLinkMessage {
639-
onMeetingLinkClick?: (id: string) => void
647+
actionButtons?: MeetingLinkActionButtons[]
640648
}
641649

642650
/**

0 commit comments

Comments
 (0)