How to Use Trix Editor With Phoenix LiveView: Difference between revisions

From ElixirBlocks
Jump to: navigation, search
No edit summary
No edit summary
Line 1: Line 1:


{{In_progress}}
{{In_progress}}
Install the library.
cd into assets directory and run:  '''npm install trix --save'''
In assets/js/ app.js:
'''import trix from "trix"
'''
In assets/css/app.css
'''@import '../node_modules/trix/dist/trix.css';'''


To integrate Trix editor we use a JavaScript Hook
To integrate Trix editor we use a JavaScript Hook

Revision as of 18:20, 22 June 2023

This page is in progress

Install the library.

cd into assets directory and run: npm install trix --save

In assets/js/ app.js:

import trix from "trix"

In assets/css/app.css

@import '../node_modules/trix/dist/trix.css';


To integrate Trix editor we use a JavaScript Hook

JavaScript Hook

let liveSocket = new LiveSocket("/live", Socket, {
    params: {
        _csrf_token: csrfToken
    },



    hooks: {
        TrixEditor: {
            mounted() {

                let element = document.querySelector("trix-editor");
                this.ele = element
                this.ele.value = "data in the value attribute";
                this.ele.addEventListener("trix-change", (e) => {
                    console.log(e.target.value)
                    this.pushEvent('transmit-text', {
                        payload: e.target.value
                    });
                });

            }
        }
    }


})

LiveView


    <div phx-hook="TrixEditor" id="xyz">
      <div id="richtext" phx-update="ignore">
        <trix-editor class="trix-content"></trix-editor>
      </div>
    </div>


Elixir Module Code



  def handle_event("transmit-text", params, socket) do
    # Create  Record
    IO.inspect(params)

    {:noreply, socket}
  end