• Stars
    star
    181
  • Rank 212,110 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Drag and Drop feature for Editor.js

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

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

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

If you're already using editorjs-undo, then your code will look somewhat 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 already using editorjs-undo your handleReady function must have the editorjs-undo instance.

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

More Repositories

1

editorjs-undo

Undo/Redo feature for Editor.js
JavaScript
171
star
2

editorjs-inline-image

Unsplash inline images plugin for editorjs
JavaScript
98
star
3

editorjs-toggle-block

Toggle block tool for EditorJS
JavaScript
45
star
4

editorjs-tooltip

Tooltips for editorjs
JavaScript
37
star
5

stellar_sdk

Elixir library to interact with the Stellar blockchain
Elixir
14
star
6

elixir_xdr

Process XDR data with Elixir. Based on the RFC4506 standard
Elixir
11
star
7

kadena.ex

Elixir library to interact with the Kadena blockchain
Elixir
10
star
8

editorjs-break-line

Break Line and divider Tool for Editor.js.
JavaScript
9
star
9

stellar_base

Low-level elixir library to read, write, hash, and sign XDR primitive constructs used in the Stellar network
Elixir
5
star
10

chaincerts-smart-contracts

Chaincerts Soroban smart contracts
Rust
5
star
11

soroban.ex

Elixir library to interact with the Soroban-RPC server, and facilitate the deployment and invocation of Soroban smart contracts.
Elixir
5
star
12

okdose-dapp

JavaScript
3
star
13

serverless-contact-email

AWS Serverless infrastructure to handle contact emails in your static websites
JavaScript
3
star
14

bns

Ruby
2
star
15

mintacoin

Minimalist API to run your crypto
Elixir
2
star
16

.allstar

kommit's OSPO policies for adherence to security best practices
1
star
17

tickspot.js

Tickspot API client
JavaScript
1
star
18

soroban-did-contract

Soroban smart contract for decentralized identifiers (DIDs)
Rust
1
star
19

mtk-automation

Rust
1
star
20

soroban_smart_contracts

Soroban smart contracts examples
Rust
1
star
21

bas

Open-source tool that empowers users to create customized automation systems tailored to their unique requirements.
Ruby
1
star