sstur / draft-js-export-markdown

DraftJS: Export ContentState to Markdown
http://npm.im/draft-js-export-markdown
55 stars 23 forks source link

Insert breaks every time #26

Open romanlex opened 7 years ago

romanlex commented 7 years ago

Hello, when I trying get markdown from onChange event by Editor I has double breaks in text. I want save markdown to another key in my state and save its to database. What I doing wrong?

<div className={`editor ${this.state.hasFocus ? 'hasFocus' : ''}`}
     onClick={() => { this.editor.focus() }} >
    <Editor
        onFocus={() => this.setState({hasFocus: true})}
        onBlur={e => this.validationDescriptionCheck(e)}
        editorState={this.state.editorState}
        onChange={this.onChange}
        plugins={plugins}
        ref={(element) => { this.editor = element; }}
    />
    <EmojiSuggestions/>
    <InlineToolbar/>
    {this.state._description === false ?
        <div className="invalid-feedback">{this.state._descriptionMsg}</div> : null}
</div>
    onChange = (editorState) => {
        const markdown = stateToMarkdown(editorState.getCurrentContent());
        this.setState({
            editorState,
            formData: {
                ...this.state.formData,
                description: markdown
            }
        });
    };

And my submitHandler:

submitHandler(e) {
    e.preventDefault();
    const { actions } = this.props;

    if(this.validate()) {
        let data = this.state.formData;

        let service = new Service(data);

        //TODO удалить
        if(!service.createdAt || service.createdAt === null)
            service.createdAt = moment().format('YYYY-MM-DD HH:mm');

        if(this.state.edit === true)
            actions.updateServiceAction(service);
        else
            actions.addServiceAction(service);
    } else {
        actions.error("Данные заполнены не корректно или неполностью");
    }
}

When I call submitHandler I has multiple line-breaks in my string and next save form added another breaks example first save image next save image

If I save in my formData plaintext(not markdown) all works properly

romanlex commented 7 years ago

I fix it with draft-js-import-markdown package and fix my componentWillReceiveProps method. close pls