diff options
| author | terminaldweller <thabogre@gmail.com> | 2022-03-31 11:20:02 +0000 | 
|---|---|---|
| committer | terminaldweller <thabogre@gmail.com> | 2022-03-31 11:20:02 +0000 | 
| commit | 07540681bcc125c3d15449e3e1bf5d061563c8ff (patch) | |
| tree | cfbef9ac6d635d812c7420074e57d79120e63738 /spring-front/src/components | |
| parent | readme update (diff) | |
| download | mdrtl-07540681bcc125c3d15449e3e1bf5d061563c8ff.tar.gz mdrtl-07540681bcc125c3d15449e3e1bf5d061563c8ff.zip | |
wip
Diffstat (limited to 'spring-front/src/components')
| -rw-r--r-- | spring-front/src/components/Left.js | 43 | 
1 files changed, 28 insertions, 15 deletions
| diff --git a/spring-front/src/components/Left.js b/spring-front/src/components/Left.js index 20b6258..af4def7 100644 --- a/spring-front/src/components/Left.js +++ b/spring-front/src/components/Left.js @@ -10,7 +10,16 @@ hljs.registerLanguage("markdown", markdown);  class Code extends React.Component {    constructor(props) {      super(props); -    this.updateCodeSyntaxHighlighting.bind(this); +    this.updateCodeSyntaxHighlighting = +      this.updateCodeSyntaxHighlighting.bind(this); +    this.handleChange = this.handleChange.bind(this); +    this.state = { value: "" }; +  } + +  handleChange(event) { +    this.setState({ value: event.target.value }); +    this.updateCodeSyntaxHighlighting(); +    console.log(this.state.value);    }    componentDidMount() { @@ -24,15 +33,20 @@ class Code extends React.Component {    updateCodeSyntaxHighlighting() {      document.querySelectorAll("pre code").forEach((block) => {        console.log("block:", block); -      console.log("blockt text:", block.innerHTML); +      console.log("blockt text:", block.textContent);        hljs.highlightElement(block);      });    }    render() {      return ( -      <pre id="highlight" aria-hidden="true"> -        <code id="highlight-content" class="language-markdown"></code> +      <pre id="highlight" aria-hidden="true" direction="rtl"> +        <code +          id="highlight-content" +          onChange={this.handleChange.bind(this)} +          class="language-markdown" +          direction="rtl" +        ></code>        </pre>      );    } @@ -53,16 +67,14 @@ class Editor extends React.Component {    }    handleInput(event) { -    let text = this.state; -    console.log(text); -    let result_element = document.querySelector("#highlight-content"); -    if (text[text.length - 1] == "\n") { -      text += " "; -    } -    result_element.innerHTML = text -      .toString() -      .replace(new RegExp("&", "g"), "&") -      .replace(new RegExp("<", "g"), "<"); +    let text = this.state.value; +    let result_element = document.getElementById("highlight-content"); +    // if (text[text.length - 1] == "\n") { +    //   text += " "; +    // } +    result_element.textContent = text; +    // .replace(new RegExp("&", "g"), "&") +    // .replace(new RegExp("<", "g"), "<");      let result_element_2 = document.querySelector("#highlight");      result_element_2.scrollTop = event.currentTarget.scrollTop;      result_element_2.scrollLeft = event.currentTarget.scrollLeft; @@ -76,7 +88,7 @@ class Editor extends React.Component {    handleKeyDown(event) {      let element = event.currentTarget; -    let code = this.state; +    let code = this.state.value;      if (event.key == "Tab") {        event.preventDefault();        let before_tab = code.slice(0, element.selectionStart); @@ -101,6 +113,7 @@ class Editor extends React.Component {          onInput={this.handleInput.bind(this)}          onScroll={this.handleScroll.bind(this)}          onKeyDown={this.handleKeyDown.bind(this)} +        direction="rtl"        ></textarea>      );    } | 
