Skip to content

Commit

Permalink
Merge pull request #5235 from ConnectAI-E/feature/access
Browse files Browse the repository at this point in the history
代码折叠
  • Loading branch information
lloydzhou authored Aug 16, 2024
2 parents f64763b + 1980f43 commit e210db7
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 1 deletion.
41 changes: 41 additions & 0 deletions app/components/markdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,46 @@ export function PreCode(props: { children: any }) {
);
}

function CustomCode(props: { children: any }) {
const ref = useRef<HTMLPreElement>(null);
const [collapsed, setCollapsed] = useState(true);
const [showToggle, setShowToggle] = useState(false);

useEffect(() => {
if (ref.current) {
const codeHeight = ref.current.scrollHeight;
setShowToggle(codeHeight > 400);
ref.current.scrollTop = ref.current.scrollHeight;
}
}, [props.children]);

const toggleCollapsed = () => {
setCollapsed((collapsed) => !collapsed);
};
return (
<>
<code
ref={ref}
style={{
maxHeight: collapsed ? "400px" : "none",
overflowY: "hidden",
}}
>
{props.children}
{showToggle && collapsed && (
<div
className={`show-hide-button ${
collapsed ? "collapsed" : "expanded"
}`}
>
<button onClick={toggleCollapsed}>查看全部</button>
</div>
)}
</code>
</>
);
}

function escapeDollarNumber(text: string) {
let escapedText = "";

Expand Down Expand Up @@ -211,6 +251,7 @@ function _MarkDownContent(props: { content: string }) {
]}
components={{
pre: PreCode,
code: CustomCode,
p: (pProps) => <p {...pProps} dir="auto" />,
a: (aProps) => {
const href = aProps.href || "";
Expand Down
33 changes: 32 additions & 1 deletion app/styles/globals.scss
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ div.math {

pre {
position: relative;

&:hover .copy-code-button {
pointer-events: all;
transform: translateX(0px);
Expand Down Expand Up @@ -304,6 +304,37 @@ pre {
}
}

code{
.show-hide-button {
border-radius: 10px;
position: absolute;
inset: 0 0 auto 0;
width: 100%;
margin: auto;
height: fit-content;
display: inline-flex;
justify-content: center;
button{
margin-top: 3em;
margin-bottom: 4em;
padding: 5px 16px;
border: 0;
cursor: pointer;
border-radius: 14px;
text-align: center;
color: white;
background: #464e4e;
}
}

.expanded {
background-image: none;
}
.collapsed {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.06));
}
}

.clickable {
cursor: pointer;

Expand Down

0 comments on commit e210db7

Please sign in to comment.