(null);
const {classes} = useStyles();
const [expanded, setExpanded] = React.useState(initialExpanded);
const [isOverflowing, setOverflowing] = React.useState(false);
const smallHeader = useMediaQuery(theme.breakpoints.down('md'));
- React.useEffect(() => {
- setOverflowing(!!previewRef && previewRef.scrollHeight > previewRef.clientHeight);
- }, [previewRef]);
+ const refreshOverflowing = React.useCallback(() => {
+ const ref = contentRef.current;
+ if (!ref) {
+ return;
+ }
+ setOverflowing((overflowing) => overflowing || ref.scrollHeight > ref.clientHeight);
+ }, [contentRef, setOverflowing]);
+
+ const onContentRef = React.useCallback(
+ (ref: HTMLDivElement | null) => {
+ contentRef.current = ref;
+ refreshOverflowing();
+ },
+ [contentRef, refreshOverflowing]
+ );
React.useEffect(() => void onExpand(expanded), [expanded]);
@@ -144,7 +156,7 @@ const Message = ({
const renderContent = () => {
switch (contentType(extras)) {
case RenderMode.Markdown:
- return {content};
+ return {content};
case RenderMode.Plain:
default:
return {content};
@@ -181,7 +193,7 @@ const Message = ({
diff --git a/ui/src/message/Messages.tsx b/ui/src/message/Messages.tsx
index 6dde14a..187caf4 100644
--- a/ui/src/message/Messages.tsx
+++ b/ui/src/message/Messages.tsx
@@ -33,9 +33,9 @@ const Messages = observer(() => {
}
}, [appId]);
- const renderMessage = (index: number, message: IMessage) => (
+ const renderMessage = (_index: number, message: IMessage) => (
(expandedState.current[message.id] = expanded)}
title={message.title}