Skip to content

Commit df45d8a

Browse files
committed
release-0.3.3
1 parent cc300e3 commit df45d8a

File tree

99 files changed

+2365
-818
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+2365
-818
lines changed

package-lock.json

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/react-together-ant-design/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"clean": "rm -rf node_modules dist"
2121
},
2222
"dependencies": {
23-
"react-together": "^0.3.2"
23+
"react-together": "^0.3.3"
2424
},
2525
"peerDependencies": {
2626
"antd": "^5.19.0"

packages/react-together-primereact/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"clean": "rm -rf node_modules dist"
2222
},
2323
"dependencies": {
24-
"react-together": "^0.3.2"
24+
"react-together": "^0.3.3"
2525
},
2626
"peerDependencies": {
2727
"primereact": "^10.6.6"

packages/react-together/CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
## 0.3.3
2+
`2025-01-29`
3+
4+
- Added `Cursors` component
5+
- Added `useCursors` hook
6+
- Added `useNicknames` hook
7+
- Added `useAllNicknames` hook
8+
- Added `throttleDelay` option to `useStateTogether`
9+
- Added `throttleDelay` option to `useStateTogetherWithPerUserValues`
10+
- Added `rememberUsers` prop to `ReactTogether` component
11+
- Added `deriveNickname` prop to `ReactTogether` component
12+
- Added `nickname` property to `ConnectedUser` interface
13+
- Deprecated `name` property in `ConnectedUser` interface
14+
115
## 0.3.2
216
`2025-01-10`
317

packages/react-together/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "react-together",
33
"description": "A library to seamlessly add real-time multi-user interaction to your React app!",
4-
"version": "0.3.2",
4+
"version": "0.3.3",
55
"license": "Apache-2.0",
66
"type": "module",
77
"main": "dist/index.js",

packages/react-together/src/components/Chat/MessageBody.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { useAllNicknames } from '../../hooks'
12
import { MessageBodyProps } from './types'
23

34
function timeToLocale(timestamp: number) {
@@ -12,10 +13,12 @@ export default function MessageBody({
1213
sentAt,
1314
formatTime = timeToLocale
1415
}: MessageBodyProps) {
16+
const allNicknames = useAllNicknames()
17+
const senderNickname = allNicknames[senderId] ?? senderId
1518
return (
1619
<div className={`rt-message-divider ${isMe ? 'isMe' : ''}`}>
1720
<div className={`rt-message-border ${isMe ? 'isMe' : ''}`}>
18-
<span className="rt-messageLabel">{senderId}</span>
21+
<span className="rt-messageLabel">{senderNickname}</span>
1922
<div>
2023
<span className="rt-message-text">{message}</span>{' '}
2124
<span className="rt-messageLabel">

packages/react-together/src/components/Chat/MessageList.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,14 @@ export default function MessageList({
2424
<div className="rt-messageContainer">
2525
{isTogether ? (
2626
messages.length > 0 ? (
27-
messages.map(({ id, senderId, sentAt, message }, index) => (
27+
messages.map(({ id, senderId, ...message }, index) => (
2828
<div
2929
key={id}
3030
ref={index === messages.length - 1 ? lastMessageRef : undefined}
3131
>
3232
<MessageRow
3333
senderId={senderId}
34-
message={message}
35-
sentAt={sentAt}
34+
{...message}
3635
isMe={senderId === myId}
3736
MessageAvatar={MessageAvatar}
3837
MessageBody={MessageBody}

packages/react-together/src/components/Chat/MessageRow.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { MessageRowProps } from './types'
22

33
export default function MessageRow({
4-
message,
54
senderId,
65
sentAt,
76
isMe,
87
MessageAvatar,
9-
MessageBody
8+
MessageBody,
9+
...message
1010
}: MessageRowProps) {
1111
return (
1212
<div className={`rt-message-row ${isMe ? 'isMe' : ''}`}>
@@ -15,7 +15,7 @@ export default function MessageRow({
1515
isMe={isMe}
1616
senderId={senderId}
1717
sentAt={sentAt}
18-
message={message}
18+
{...message}
1919
/>
2020
</div>
2121
)

packages/react-together/src/components/Chat/types.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,7 @@ export interface MessageAvatarProps {
7272
isMe: boolean
7373
}
7474

75-
export interface MessageBodyProps {
76-
senderId: string
77-
message: string
78-
sentAt: number
75+
export interface MessageBodyProps extends Omit<ChatMessage, 'id'> {
7976
isMe: boolean
8077
formatTime?: (ts: number) => string
8178
}

packages/react-together/src/components/ConnectedUsers.tsx

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ import { AvatarGroup } from 'primereact/avatargroup'
33
import { useConnectedUsers } from '../hooks'
44

55
interface UserAvatarProps {
6-
name: string
6+
nickname: string
77
}
8-
function UserAvatar({ name }: UserAvatarProps) {
8+
function UserAvatar({ nickname }: UserAvatarProps) {
99
return (
1010
<Avatar
11-
image={`https://api.dicebear.com/8.x/initials/svg?seed=${name}`}
11+
image={`https://api.dicebear.com/8.x/initials/svg?seed=${nickname}`}
1212
size="normal"
1313
shape="circle"
14-
label={name}
15-
pt={{ root: { title: name } }}
14+
label={nickname}
15+
pt={{ root: { title: nickname } }}
1616
/>
1717
)
1818
}
@@ -22,8 +22,7 @@ type ConnectedUsersProps = {
2222
debug?: boolean
2323
}
2424
export default function ConnectedUsers({
25-
maxAvatars = 3,
26-
debug = false
25+
maxAvatars = 3
2726
}: ConnectedUsersProps) {
2827
const users = useConnectedUsers()
2928

@@ -33,36 +32,16 @@ export default function ConnectedUsers({
3332
return (
3433
<>
3534
<AvatarGroup pt={{ root: { style: { gap: '10px' } } }}>
36-
{users.slice(0, maxAvatars - 1).map(({ name, userId }) => (
37-
<UserAvatar key={userId} name={name} />
35+
{users.slice(0, maxAvatars - 1).map(({ nickname, userId }) => (
36+
<UserAvatar key={userId} nickname={nickname} />
3837
))}
3938
{nAvatars > 0 &&
4039
(nAvatars === 1 ? (
41-
<UserAvatar name={users[users.length - 1].name} />
40+
<UserAvatar nickname={users[users.length - 1].nickname} />
4241
) : (
4342
<Avatar label={`+${nAvatars}`} shape="circle" size={size} />
4443
))}
4544
</AvatarGroup>
46-
{debug && (
47-
<div style={{ textAlign: 'left' }}>
48-
<p>Connected users:</p>
49-
<ul>
50-
{users.map(({ userId, name, isYou }) => (
51-
<li key={userId}>
52-
{isYou ? (
53-
<strong>
54-
{userId}: {name}
55-
</strong>
56-
) : (
57-
<span>
58-
{userId}: {name}
59-
</span>
60-
)}
61-
</li>
62-
))}
63-
</ul>
64-
</div>
65-
)}
6645
</>
6746
)
6847
}

0 commit comments

Comments
 (0)