improve chat things

This commit is contained in:
MeowcaTheoRange 2024-05-09 14:47:45 -05:00
parent 8bc897a1e7
commit 933701433c

View file

@ -113,7 +113,7 @@ export default function Home() {
/* SECT: LHUA; Lord help us all these ones */ /* SECT: LHUA; Lord help us all these ones */
const [ textBox, setTextBox ] = useState<React.ReactNode>(null); const [ textBox, setTextBox ] = useState<React.ReactNode>(null);
let Message = useRef<(message:MessageType) => React.ReactNode>(() => <></>); let Message = useRef<(message:MessageType) => React.ReactNode>(() => <></>);
const [, forceUpdate] = useState({}); const [ affectedByUpdate, forceUpdate ] = useState({});
const externCachedUsers = useRef(new Map()); const externCachedUsers = useRef(new Map());
/* END_SECT LHUA; */ /* END_SECT LHUA; */
@ -169,6 +169,8 @@ export default function Home() {
if (token != null) if (token != null)
socket.emit('SIG_CHAT_JOIN', { token }, joinChatRes); socket.emit('SIG_CHAT_JOIN', { token }, joinChatRes);
socket.emit('SIG_CHAT_CHANNELS', {}, channelsChatRes);
setTextBox(<div className={styles.textBox}> setTextBox(<div className={styles.textBox}>
<textarea rows={2} className={styles.textBoxInput} ref={chatInput}></textarea> <textarea rows={2} className={styles.textBoxInput} ref={chatInput}></textarea>
<button className={styles.textBoxButton} onClick={() => socket.emit('SIG_CHAT_MESSAGE', { message: chatInput.current?.value }, messageChatRes)}>Send</button> <button className={styles.textBoxButton} onClick={() => socket.emit('SIG_CHAT_MESSAGE', { message: chatInput.current?.value }, messageChatRes)}>Send</button>
@ -195,7 +197,9 @@ export default function Home() {
const timeSent = new Date(message.timestamp * 1000).toLocaleTimeString(); const timeSent = new Date(message.timestamp * 1000).toLocaleTimeString();
return <div className={styles.Message} key={message.id}> return <div className={styles.Message} key={message.id}>
<h3 className={styles.MessageHeader}> <h3 className={styles.MessageHeader}>
<a href={`/jams/user/${user?.id}`} target="_blank">{user?.username}@{user?.instance}</a> {user?.id != null ?
<a href={`/jams/user/${user?.id}`} target="_blank">{user?.username}@{user?.instance}</a>
: <i>Fetching user...</i>}
{" "} {" "}
<Conditional condition={canDelete} <Conditional condition={canDelete}
truthy={<button onClick={() => socket.emit('SIG_CHAT_RMMESSAGE', { messageId: message.id }, rmmessageChatRes)} className={styles.deleteButton}> truthy={<button onClick={() => socket.emit('SIG_CHAT_RMMESSAGE', { messageId: message.id }, rmmessageChatRes)} className={styles.deleteButton}>
@ -331,7 +335,6 @@ export default function Home() {
setError(type, spec, data); setError(type, spec, data);
} else { } else {
setWhoAmI(data); setWhoAmI(data);
socket.emit('SIG_CHAT_CHANNELS', {}, channelsChatRes);
} }
} }
@ -385,7 +388,7 @@ export default function Home() {
</form> </form>
<p><small>Tested on Discord, GitHub, Mastodon, GoToSocial, Pleroma, and Misskey</small></p> <p><small>Tested on Discord, GitHub, Mastodon, GoToSocial, Pleroma, and Misskey</small></p>
</>); </>);
}, [messages]); }, [affectedByUpdate, messages]);
return ( return (
<ChatLayout <ChatLayout