Download packages/web/src/components/share/content-text.tsx from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 1.1 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/web/src/components/share/content-text.tsx
- Command line
-
hf download hf://SaylorTwift/opencode/packages/web/src/components/share/content-text.tsx
-
curl -L -o content-text.tsx https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/web/src/components/share/content-text.tsx
1.1 kB
| import style from "./content-text.module.css" | |
| import { createSignal } from "solid-js" | |
| import { createOverflow, useShareMessages } from "./common" | |
| import { CopyButton } from "./copy-button" | |
| interface Props { | |
| text: string | |
| expand?: boolean | |
| compact?: boolean | |
| } | |
| export function ContentText(props: Props) { | |
| const [expanded, setExpanded] = createSignal(false) | |
| const overflow = createOverflow() | |
| const messages = useShareMessages() | |
| return ( | |
| <div | |
| class={style.root} | |
| data-expanded={expanded() || props.expand === true ? true : undefined} | |
| data-compact={props.compact === true ? true : undefined} | |
| > | |
| <pre data-slot="text" ref={overflow.ref}> | |
| {props.text} | |
| </pre> | |
| {((!props.expand && overflow.status) || expanded()) && ( | |
| <button | |
| type="button" | |
| data-component="text-button" | |
| data-slot="expand-button" | |
| onClick={() => setExpanded((e) => !e)} | |
| > | |
| {expanded() ? messages.show_less : messages.show_more} | |
| </button> | |
| )} | |
| <CopyButton text={props.text} /> | |
| </div> | |
| ) | |
| } | |