From fe9a7acdaa61f6dc94cdffd8ca05d0940f599ab3 Mon Sep 17 00:00:00 2001 From: PhilReact Date: Sun, 15 Dec 2024 08:49:56 +0200 Subject: [PATCH] fix message size --- src/App.tsx | 2 +- src/components/Chat/ChatDirect.tsx | 4 ++-- src/components/Chat/ChatGroup.tsx | 23 ++++++++++++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 353289d..a442e97 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -319,7 +319,7 @@ function App() { useState(""); const [isMain, setIsMain] = useState(true); const isMainRef = useRef(false); - const [authenticatePassword, setAuthenticatePassword] = useState("1234567890"); + const [authenticatePassword, setAuthenticatePassword] = useState(""); const [sendqortState, setSendqortState] = useState(null); const [isLoading, setIsLoading] = useState(false); const [ diff --git a/src/components/Chat/ChatDirect.tsx b/src/components/Chat/ChatDirect.tsx index 5e2014e..ace54ce 100644 --- a/src/components/Chat/ChatDirect.tsx +++ b/src/components/Chat/ChatDirect.tsx @@ -377,7 +377,8 @@ useEffect(() => { const sendMessage = async ()=> { try { - + if(messageSize > 4000) return + if(+balance < 4) throw new Error('You need at least 4 QORT to send a message') if(isSending) return @@ -674,7 +675,6 @@ useEffect(() => { { - if(messageSize > 4000) return if(isSending) return sendMessage() diff --git a/src/components/Chat/ChatGroup.tsx b/src/components/Chat/ChatGroup.tsx index 4324913..25be721 100644 --- a/src/components/Chat/ChatGroup.tsx +++ b/src/components/Chat/ChatGroup.tsx @@ -562,6 +562,7 @@ const clearEditorContent = () => { const sendMessage = async ()=> { try { + if(messageSize > 4000) return if(isPrivate === null) throw new Error('Unable to determine if group is private') if(isSending) return if(+balance < 4) throw new Error('You need at least 4 QORT to send a message') @@ -647,11 +648,19 @@ const clearEditorContent = () => { handleUpdateRef.current = throttle(async () => { try { - const htmlContent = editorRef.current.getHTML(); - const message64 = await objectToBase64(JSON.stringify(htmlContent)) - const secretKeyObject = await getSecretKey(false, true) - const encryptSingle = await encryptChatMessage(message64, secretKeyObject) - setMessageSize((encryptSingle?.length || 0) + 200); + if(isPrivate){ + const htmlContent = editorRef.current.getHTML(); + const message64 = await objectToBase64(JSON.stringify(htmlContent)) + const secretKeyObject = await getSecretKey(false, true) + const encryptSingle = await encryptChatMessage(message64, secretKeyObject) + setMessageSize((encryptSingle?.length || 0) + 200); + } else { + const htmlContent = editorRef.current.getJSON(); + const message = JSON.stringify(htmlContent) + const size = new Blob([message]).size + setMessageSize(size + 300); + } + } catch (error) { // calc size error } @@ -664,7 +673,7 @@ const clearEditorContent = () => { return () => { currentEditor.off("update", handleUpdateRef.current); }; - }, [editorRef, setMessageSize]); + }, [editorRef, setMessageSize, isPrivate]); useEffect(() => { if (hide) { @@ -874,7 +883,7 @@ const clearEditorContent = () => { { - if(messageSize > 4000) return + if(isSending) return sendMessage() }}