Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

editorjs-drag-drop

Package Overview
Dependencies
Maintainers
0
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

editorjs-drag-drop

Drag and Drop feature for Editor.js

  • 1.1.16
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
22K
increased by29.7%
Maintainers
0
Weekly downloads
 
Created
Source

EditorJS Drag/Drop Plugin

Stability Badge Coverage Status OpenSSF Best Practices OpenSSF Scorecard

Drag/Drop feature for Editor.js.

Installation

Install via NPM

Get the package

$ npm i --save-dev editorjs-drag-drop

Include module at your application

import DragDrop from "editorjs-drag-drop";

Load from CDN

You can load a specific version of the package from jsDelivr CDN.

Require this script on a page with Editor.js.

<script src="https://cdn.jsdelivr.net/npm/editorjs-drag-drop"></script>

Usage

Add the plugin to the onReady property of the Editor.js configuration to initialize it:

const editor = new EditorJS({
  onReady: () => {
    new DragDrop(editor);
  },
});

You can customize the indicator border style by passing a second parameter to the plugin constructor:

const editor = new EditorJS({
  onReady: () => {
    new DragDrop(editor, "2px solid #fff");
  },
});

If no parameter is provided, the default border style 1px dashed #aaa is used.

Select the block, drag the toolbar settings button, and drop it at the desired position.

Integration with editorjs-undo

If you're already using editorjs-undo, your code might look like this:

const editor = new EditorJS({
  onReady: () => {
    new Undo({ editor });
    new DragDrop(editor);
  },
});

Usage with React.

If you are using React, you could create a function to handle the onReady property, the function will store the DragDrop instance. Then, you must call the function in onReady in the editorJS instance.

const handleReady = (editor) => {
  new DragDrop(editor);
};

class ReactEditor extends Component {
  render() {
    return (
      <EditorJs
        onReady = { handleReady }
        tools = { ... }
      />
    )
  }
}

Note: If you are also using editorjs-undo your handleReady function must have the editorjs-undo instance as well.

const handleReady = (editor) => {
  new Undo({ editor });
  new DragDrop(editor);
};

Usage with react-editor-js.

If you are using react-editor-js, you should use the 'onInitialize' prop in the ReactEditorJS component to obtain the abstract editorjs as follow:

........
export const ReactEditor = () => {
  const editorCore = React.useRef(null)

  const handleInitialize = React.useCallback((instance) => {
    editorCore.current = instance
  }, [])

  const handleReady = () => {
    const editor = editorCore.current._editorJS;
    new Undo({ editor })
    new DragDrop(editor);
  };

  const ReactEditorJS = createReactEditorJS()
  return(
  <ReactEditorJS
    onInitialize={handleInitialize}
    onReady = {handleReady}
    tools={....}
    defaultValue={....}
  />
  )
}

Development

Development mode

$ yarn build:dev

Production release

  1. Create a production bundle
$ yarn build
  1. Commit dist/bundle.js

Run tests

$ yarn test

Code of conduct

We welcome everyone to contribute. Make sure you have read the CODE_OF_CONDUCT before.

Contributing

For information on how to contribute, please refer to our CONTRIBUTING guide.

Changelog

Features and bug fixes are listed in the CHANGELOG file.

License

This library is licensed under an MIT license. See LICENSE for details.

Acknowledgements

Made with 💙 by kommitters Open Source

Keywords

FAQs

Package last updated on 13 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc