mirror of
https://github.com/wavetermdev/backup.git
synced 2026-08-05 13:57:07 -07:00
Fixed chat bug "r.replace is not a function" (#241)
* fixed bug * ran prettier * use innerText to get code value * prettier, and remove console.log
This commit is contained in:
@@ -830,10 +830,7 @@ function CodeRenderer(props: any): any {
|
||||
}
|
||||
|
||||
@mobxReact.observer
|
||||
class CodeBlockMarkdown extends React.Component<
|
||||
{ children: React.ReactNode; blockText: string; codeSelectSelectedIndex?: number },
|
||||
{}
|
||||
> {
|
||||
class CodeBlockMarkdown extends React.Component<{ children: React.ReactNode; codeSelectSelectedIndex?: number }, {}> {
|
||||
blockIndex: number;
|
||||
blockRef: React.RefObject<HTMLPreElement>;
|
||||
|
||||
@@ -844,7 +841,6 @@ class CodeBlockMarkdown extends React.Component<
|
||||
}
|
||||
|
||||
render() {
|
||||
let codeText = this.props.blockText;
|
||||
let clickHandler: (e: React.MouseEvent<HTMLElement>, blockIndex: number) => void;
|
||||
let inputModel = GlobalModel.inputModel;
|
||||
clickHandler = (e: React.MouseEvent<HTMLElement>, blockIndex: number) => {
|
||||
@@ -869,19 +865,15 @@ class Markdown extends React.Component<
|
||||
{}
|
||||
> {
|
||||
CodeBlockRenderer(props: any, codeSelect: boolean, codeSelectIndex: number): any {
|
||||
let codeText = codeSelect ? props.node.children[0].children[0].value : props.children;
|
||||
if (codeText) {
|
||||
codeText = codeText.replace(/\n$/, ""); // remove trailing newline
|
||||
}
|
||||
if (codeSelect) {
|
||||
return (
|
||||
<CodeBlockMarkdown blockText={codeText} codeSelectSelectedIndex={codeSelectIndex}>
|
||||
{props.children}
|
||||
</CodeBlockMarkdown>
|
||||
);
|
||||
return <CodeBlockMarkdown codeSelectSelectedIndex={codeSelectIndex}>{props.children}</CodeBlockMarkdown>;
|
||||
} else {
|
||||
let clickHandler = (e: React.MouseEvent<HTMLElement>) => {
|
||||
navigator.clipboard.writeText(codeText);
|
||||
let blockText = e.target.innerText;
|
||||
if (blockText) {
|
||||
blockText = blockText.replace(/\n$/, ""); // remove trailing newline
|
||||
navigator.clipboard.writeText(blockText);
|
||||
}
|
||||
};
|
||||
return <pre onClick={(event) => clickHandler(event)}>{props.children}</pre>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user