From 0cd703da542e5f3ce37e1d5bd0611470acf7472d Mon Sep 17 00:00:00 2001 From: Alois Date: Sun, 29 Mar 2026 13:26:19 +0200 Subject: [PATCH] Updated height calculation --- packages/chat/src/components/input.tsx | 13 +++++-------- packages/chat/src/screen.tsx | 21 +-------------------- todo.md | 1 + 3 files changed, 7 insertions(+), 28 deletions(-) diff --git a/packages/chat/src/components/input.tsx b/packages/chat/src/components/input.tsx index 8750a69..66e0719 100644 --- a/packages/chat/src/components/input.tsx +++ b/packages/chat/src/components/input.tsx @@ -10,11 +10,6 @@ import { useSocket } from "@tensamin/ttp/context"; import { useCrypto } from "@tensamin/crypto/context"; import { log, toast } from "@tensamin/shared/log"; -/** - * Executes InputComponent. - * @param none This function has no parameters. - * @returns unknown. - */ export default function InputComponent() { const [value, setValue] = React.useState(""); const [invertEnterBehavior, setInvertEnterBehavior] = React.useState(false); @@ -49,12 +44,14 @@ export default function InputComponent() { } if (!currentSharedSecret) { - toast("error", "Conversation key not ready yet"); + toast("error", "Still getting shared secret..."); return; } + const height = currentValue.split("\n").length * 24 + 16; // 24px per line + 16px padding + const reference = addLiveMessage({ - height: 0, + height, not_encrypted: true, timestamp: time, content: currentValue, @@ -64,7 +61,7 @@ export default function InputComponent() { const encryptedContext = await encrypt(currentSharedSecret, currentValue); send("message_send", { - height: 0, + height, content: encryptedContext, receiver_id: currentUserId, send_time: time, diff --git a/packages/chat/src/screen.tsx b/packages/chat/src/screen.tsx index 6e9a18c..a0a4791 100644 --- a/packages/chat/src/screen.tsx +++ b/packages/chat/src/screen.tsx @@ -62,26 +62,7 @@ export default function Screen() { const virtualizer = useVirtualizer({ count: messages.length, getScrollElement: () => scrollRef.current, - estimateSize: (index) => { - const message = messages[index]; - - if (!message) { - return 56; - } - - let decodedContent = message.content; - try { - decodedContent = atob(message.content); - } catch { - /* noop */ - } - - const lineCount = decodedContent.split("\n").length; - const wrappedLineCount = Math.ceil(decodedContent.length / 42); - const fileCount = message.files?.length ?? 0; - - return 28 + Math.max(lineCount, wrappedLineCount) * 20 + fileCount * 20; - }, + estimateSize: (index) => messages[index].height, overscan: 6, }); diff --git a/todo.md b/todo.md index 8dfd2e3..a7a87ff 100644 --- a/todo.md +++ b/todo.md @@ -2,3 +2,4 @@ - Split ttp codec into separate file - Add "Rename Conversations to Friends" option in settings - Handle live messages in notification context +- Add files to message height calculation