Skip to content

Commit 4e93168

Browse files
committed
Fix performance
1 parent 95588db commit 4e93168

File tree

3 files changed

+56
-59
lines changed

3 files changed

+56
-59
lines changed

apps/web/organisms/live/comment/menu.tsx

Lines changed: 48 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -114,58 +114,60 @@ export const CommentMenu: FC<Props> = ({
114114
<FiMoreHorizontal />
115115
</MenuButton>
116116

117-
<Portal>
118-
<MenuList zIndex={99999}>
119-
<MenuGroup
120-
title={intl.formatMessage(
121-
{
122-
id: commentTypeIntlId
123-
},
124-
{
125-
relative: relativeTime
126-
}
127-
)}
128-
>
129-
{isAbleToDelete && (
130-
<MenuItem
131-
onClick={() => void handleDelete()}
132-
isDisabled={isLoading}
133-
>
134-
<FormattedMessage id="live.comment.delete" />
135-
</MenuItem>
136-
)}
137-
</MenuGroup>
138-
139-
<MenuGroup title={user?.account}>
140-
{isStreamer && (
141-
<Fragment>
117+
{isOpen && (
118+
<Portal>
119+
<MenuList zIndex={99999}>
120+
<MenuGroup
121+
title={intl.formatMessage(
122+
{
123+
id: commentTypeIntlId
124+
},
125+
{
126+
relative: relativeTime
127+
}
128+
)}
129+
>
130+
{isAbleToDelete && (
142131
<MenuItem
143-
onClick={() => setConfirmAutoMod('Account')}
132+
onClick={() => void handleDelete()}
144133
isDisabled={isLoading}
145-
color="red.400"
146134
>
147-
{user?.account} を非表示
135+
<FormattedMessage id="live.comment.delete" />
148136
</MenuItem>
137+
)}
138+
</MenuGroup>
149139

150-
<MenuItem
151-
onClick={() => setConfirmAutoMod('Domain')}
152-
isDisabled={isLoading}
153-
color="red.400"
154-
>
155-
*.{domain} を非表示
156-
</MenuItem>
157-
</Fragment>
158-
)}
140+
<MenuGroup title={user?.account}>
141+
{isStreamer && (
142+
<Fragment>
143+
<MenuItem
144+
onClick={() => setConfirmAutoMod('Account')}
145+
isDisabled={isLoading}
146+
color="red.400"
147+
>
148+
{user?.account} を非表示
149+
</MenuItem>
150+
151+
<MenuItem
152+
onClick={() => setConfirmAutoMod('Domain')}
153+
isDisabled={isLoading}
154+
color="red.400"
155+
>
156+
*.{domain} を非表示
157+
</MenuItem>
158+
</Fragment>
159+
)}
159160

160-
<LinkBox as={MenuItem}>
161-
<LinkOverlay href={user?.url} isExternal>
162-
<FormattedMessage id="live.comment.account-page" />
163-
<ExternalLinkIcon mb={1} ml={2} />
164-
</LinkOverlay>
165-
</LinkBox>
166-
</MenuGroup>
167-
</MenuList>
168-
</Portal>
161+
<LinkBox as={MenuItem}>
162+
<LinkOverlay href={user?.url} isExternal>
163+
<FormattedMessage id="live.comment.account-page" />
164+
<ExternalLinkIcon mb={1} ml={2} />
165+
</LinkOverlay>
166+
</LinkBox>
167+
</MenuGroup>
168+
</MenuList>
169+
</Portal>
170+
)}
169171
</Menu>
170172
</Fragment>
171173
);

apps/web/organisms/live/video/live-player.tsx

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,8 @@ export const LivePlayer: FC<Props> = ({
196196
return;
197197
}
198198
if (!commentAddedRef.current) {
199-
const set = new Set<number>();
199+
const set = new Set<number>(comments.map(comment => comment.id));
200200
commentAddedRef.current = set;
201-
202-
comments.forEach(comment => {
203-
set.add(comment.id);
204-
});
205201
return;
206202
}
207203

@@ -210,17 +206,14 @@ export const LivePlayer: FC<Props> = ({
210206
return;
211207
}
212208

213-
for (const comment of comments) {
214-
if (commentAddedRef.current?.has(comment.id)) {
215-
break;
216-
}
217-
209+
const comment = comments[0];
210+
if (!commentAddedRef.current?.has(comment.id)) {
218211
commentAddedRef.current.add(comment.id);
219212
const dom = gravity.add(comment.content, false);
220213

221214
setTimeout(() => {
222215
gravity.remove(dom);
223-
}, 10000);
216+
}, 10 * 1000);
224217
}
225218
}, [comments, danmaku]);
226219

apps/web/utils/hooks/use-video-stream.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ export const useVideoStream = <T extends 'live' | 'video'>(
7373
enableWorker: true,
7474
autoCleanupSourceBuffer: true,
7575
liveBufferLatencyChasing: true,
76+
liveBufferLatencyMinRemain: 0.2,
7677
// @ts-expect-error: type error
7778
enableWorkerForMSE: true,
7879
liveBufferLatencyChasingOnPaused: true,
@@ -84,7 +85,7 @@ export const useVideoStream = <T extends 'live' | 'video'>(
8485
flvConfig = {
8586
...flvConfig,
8687
enableStashBuffer: false,
87-
liveBufferLatencyMaxLatency: 1,
88+
liveBufferLatencyMaxLatency: 3,
8889
// @ts-expect-error: type error
8990
liveSyncTargetLatency: 0.5
9091
};
@@ -138,7 +139,8 @@ export const useVideoStream = <T extends 'live' | 'video'>(
138139
enableWorker: true,
139140
liveDurationInfinity: true,
140141
startFragPrefetch: true,
141-
progressive: true
142+
progressive: true,
143+
autoStartLoad: true
142144
};
143145

144146
if (LowLatency.includes(playType as LivePlayType)) {

0 commit comments

Comments
 (0)