maxeckel / livewire-editorjs

This Package aims for an easy integration of Editor.JS with Laravel Livewire
MIT License
146 stars 20 forks source link

[WIP] Version 2 #29

Open maxeckel opened 2 years ago

maxeckel commented 2 years ago

This PR is work in progress and contains the refactoring for V2 of this package.

With the update I aim for an even easier integration and less friction.

V1 used an event approach to deliver the EditorJS content to you. This wasn't ideal and unnecessary. Also V1 used a Livewire component to package everything up. By now I think it's better to use a "simple" Blade component, which you can use in YOUR Livewire component.

This way you get way more control over the data and less stuff is hidden from you. At first this may sound like a lot more work is put on your shoulders, but let me show you how it will look like:

<div x-data="{ content: @entangle('content').defer }">
    <x-editorjs::editor x-model="content"></x-editorjs::editor>

    <button wire:click="save">Save</button>
</div>

content gets entangled to your Livewire components content property and passed to editorjs using x-model. As you can see, we can even use "defer" here now, so that only on save the editors state is updated in your Livewire component.

This is still work in progress, but you can see where it's heading!