diff --git a/apps/web/src/components/common/container/CollapsibleContent.tsx b/apps/web/src/components/common/container/CollapsibleContent.tsx index 6d1ea96..831bdad 100644 --- a/apps/web/src/components/common/container/CollapsibleContent.tsx +++ b/apps/web/src/components/common/container/CollapsibleContent.tsx @@ -1,5 +1,6 @@ -import React, { useRef, useState } from "react"; - +import React, { useEffect, useRef, useState } from "react"; +import Quill from "quill"; +import "quill/dist/quill.snow.css"; // 引入默认样式 interface CollapsibleContentProps { content: string; maxHeight?: number; @@ -9,44 +10,54 @@ const CollapsibleContent: React.FC = ({ content, maxHeight = 150, }) => { - const contentWrapperRef = useRef(null); + const contentWrapperRef = useRef(null); const [isExpanded, setIsExpanded] = useState(false); + const [shouldCollapse, setShouldCollapse] = useState(false); - // Determine if content needs to be collapsed - const shouldCollapse = contentWrapperRef.current - ? contentWrapperRef.current.scrollHeight > maxHeight - : false; + useEffect(() => { + if (contentWrapperRef.current) { + const shouldCollapse = + contentWrapperRef.current.scrollHeight > maxHeight; + setShouldCollapse(shouldCollapse); + } + }, [content]); return ( -
-
+
+
+ {/* 包装整个内容区域的容器 */}
+ ref={contentWrapperRef} + className={`duration-300 ${ + shouldCollapse && !isExpanded + ? `max-h-[${maxHeight}px] overflow-hidden relative` + : "" + }`}> + {/* 内容区域 */} +
- {/* Gradient overlay */} - {shouldCollapse && !isExpanded && ( -
+ {/* 渐变遮罩 */} + {shouldCollapse && !isExpanded && ( +
+ )} +
+ + {/* 展开/收起按钮 */} + {shouldCollapse && ( + )} + {/* PostResources 组件 */} + {/* */}
- - {/* Expand/Collapse button */} - {shouldCollapse && ( - - )}
); };