Initializes an element that the app can edit once it exists in the user's design.
To learn more, see Creating app elements.
Usage
import { initAppElement } from "@canva/design";// The data structure to attach to the app elementtype AppElementData = {text: string;};// Initialize the app elementconst appElement = initAppElement<AppElementData>({render: (data) => {return [{type: "TEXT",children: [data.text],top: 0,left: 0,},];},});// Set the app element dataappElement.addOrUpdateElement({text: "Hello world",});// Keep track of element changesappElement.registerOnElementChange((element) => {console.log("The app element has changed:", element?.data);});
Parameters
The options for initializing an app element.
Renders an app element based on the current state of the app element data.
The current state of the app element data.
Returns
A Promise
that resolves with the following object:
The result of the successful initialization an app element.
If an app element is not selected, sets the initial data of the element and adds it to the user's design. If an app element is selected, overwrites the data and re-renders the element.
The data to attach to the app element.
The position of the app element on the page.
The distance from the top edge of page, in pixels.
The distance from the left edge of page, in pixels.
The width of the element, in pixels.
The height of the element, in pixels.
The rotation of the element, in degrees. This must be a number between -180
and 180
.
Registers a callback that runs when the app element data or selection changes.
The callback that runs when the app element data or selection changes.
The selected element. If an element is not selected, this is undefined
.
The current state of the app element data.
The version number of the app.