Compare commits

..

5 Commits

Author SHA1 Message Date
ElementalAlchemist 9ff180d700 Update chat when time range changes 2 days ago
ElementalAlchemist 7a87fff3a1 Include reply icon button since the player insists on using it 2 days ago
ElementalAlchemist 4767314fbd Remove the special emote size handling
Since autoscroll doesn't rely on emotes rendering at their correct height from the start anymore (this only worked nebulously anyway), this commit gets rid of the forced sizing entirely.
2 days ago
ElementalAlchemist cafc2c475c Fix rendering messages with multiple emotes 2 days ago
ElementalAlchemist f9b363fce8 Prevent double-encoding request 2 days ago

@ -35,12 +35,6 @@
} }
} }
.chatReplayMessageEmote {
// The sizes here are based on Twitch's 1.0 emote size.
width: 28px;
height: 28px;
}
.chatReplayMessageCleared { .chatReplayMessageCleared {
opacity: 0.5; opacity: 0.5;

@ -180,20 +180,20 @@ export const ChatDisplay: Component<ChatDisplayProps> = (props) => {
return ( return (
<Suspense> <Suspense>
<Index each={chatLog().messages}> <For each={chatLog().messages}>
{(item: Accessor<ChatMessageData>, index: number) => { {(item: ChatMessageData, index: Accessor<number>) => {
const chatCommand = item().message.command; const chatCommand = item.message.command;
if (chatCommand === "PRIVMSG") { if (chatCommand === "PRIVMSG") {
return ( return (
<ChatMessage chatMessage={item()} chatLog={chatLog()} videoTime={props.videoTime} /> <ChatMessage chatMessage={item} chatLog={chatLog()} videoTime={props.videoTime} />
); );
} else if (chatCommand === "USERNOTICE") { } else if (chatCommand === "USERNOTICE") {
return <SystemMessage chatMessage={item()} videoTime={props.videoTime} />; return <SystemMessage chatMessage={item} videoTime={props.videoTime} />;
} else { } else {
return <></>; return <></>;
} }
}} }}
</Index> </For>
</Suspense> </Suspense>
); );
}; };
@ -378,14 +378,13 @@ const MessageText: Component<MessageTextProps> = (props) => {
emoteData.start - messageTextStart, emoteData.start - messageTextStart,
emoteData.end + 1 - messageTextStart, emoteData.end + 1 - messageTextStart,
); );
chatMessageText = chatMessageText.substring(emoteData.end + 1); chatMessageText = chatMessageText.substring(emoteData.end + 1 - messageTextStart);
messageTextStart = emoteData.end + 1; messageTextStart = emoteData.end + 1;
messageParts.push( messageParts.push(
<img <img
src={emoteImageURL} src={emoteImageURL}
alt={emoteText} alt={emoteText}
title={emoteText} title={emoteText}
class={styles.chatReplayMessageEmote}
/>, />,
); );
} }

@ -259,6 +259,7 @@ export const VideoPlayer: Component<VideoPlayerProps> = (props) => {
<media-play-button class="vds-button"> <media-play-button class="vds-button">
<media-icon type="play" class="vds-play-icon" /> <media-icon type="play" class="vds-play-icon" />
<media-icon type="pause" class="vds-pause-icon" /> <media-icon type="pause" class="vds-pause-icon" />
<media-icon type="replay" class="vds-replay-icon" />
</media-play-button> </media-play-button>
</media-tooltip-trigger> </media-tooltip-trigger>
<media-tooltip-content class="vds-tooltip-content" placement="top"> <media-tooltip-content class="vds-tooltip-content" placement="top">

@ -146,7 +146,7 @@ const RestreamerWithDefaults: Component<RestreamerDefaultProps> = (props) => {
const downloadVideoURL = () => { const downloadVideoURL = () => {
const streamInfo = streamVideoInfo(); const streamInfo = streamVideoInfo();
const startTime = wubloaderTimeFromDateTime(streamInfo.streamStartTime); const startTime = wubloaderTimeFromDateTime(streamInfo.streamStartTime);
const params = new URLSearchParams({ type: "smart", start: encodeURIComponent(startTime) }); const params = new URLSearchParams({ type: "smart", start: startTime });
if (streamInfo.streamEndTime) { if (streamInfo.streamEndTime) {
const endTime = wubloaderTimeFromDateTime(streamInfo.streamEndTime); const endTime = wubloaderTimeFromDateTime(streamInfo.streamEndTime);
params.append("end", endTime); params.append("end", endTime);

Loading…
Cancel
Save