Skip to content

Commit d7a4df2

Browse files
author
nikel
authored
fix: Fixed bug with placeholder (#114)
1 parent 9288db6 commit d7a4df2

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/index.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ export default React.forwardRef<HTMLTextAreaElement, TextareaCodeEditorProps>((p
4545
} = props;
4646

4747
const [value, setValue] = useState(props.value || '');
48-
useEffect(() => setValue(props.value || ''), [props.value]);
48+
useEffect(
49+
() => setValue(props.value || ''),
50+
[props.value]
51+
);
4952
const textRef = useRef<HTMLTextAreaElement>(null);
5053
useImperativeHandle<HTMLTextAreaElement, HTMLTextAreaElement>(ref, () => textRef.current!);
5154

@@ -59,12 +62,12 @@ export default React.forwardRef<HTMLTextAreaElement, TextareaCodeEditorProps>((p
5962
const htmlStr = useMemo(
6063
() =>
6164
processHtml(
62-
`<pre aria-hidden=true><code ${language ? `class="language-${language}"` : ''} >${htmlEncode(
63-
String(value || ''),
65+
`<pre aria-hidden=true><code ${language && value ? `class="language-${language}"` : ''} >${htmlEncode(
66+
String(value || placeholder || ''),
6467
)}</code><br /></pre>`,
6568
rehypePlugins,
6669
),
67-
[value, language, rehypePlugins],
70+
[value, placeholder, language, rehypePlugins],
6871
);
6972
const preView = useMemo(
7073
() => (

website/App.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,15 @@ const App: React.FC = () => {
7474
onChange={(evn) => setCode(evn.target.value)}
7575
/>
7676
</div>
77+
<div className="App-editor">
78+
<span>Test case</span>
79+
<div style={{ display: 'flex', flexDirection: 'row', marginTop: 12 }}>
80+
<TextareaCodeEditor placeholder={`Please enter ${(language || '').toLocaleUpperCase()} code.`} />
81+
<button type="button" style={{ marginLeft: 12 }}>
82+
Edit
83+
</button>
84+
</div>
85+
</div>
7786
<div className="App-tools" style={{ marginTop: 5 }}>
7887
<select value={language} onChange={(evn) => setLanguage(evn.target.value)}>
7988
{exts.map((keyName, idx) => {

0 commit comments

Comments
 (0)