|
|
4 лет назад | |
|---|---|---|
| .. | ||
| scripts | 4 лет назад | |
| src | 4 лет назад | |
| README.md | 4 лет назад | |
| package.json | 4 лет назад | |
| tsconfig.build.json | 4 лет назад | |
| tsconfig.json | 4 лет назад | |
This package contains the tldraw editor as a standalone React component.
npm i @tldraw/tldraw
or
yarn add @tldraw/tldraw
Import the TLDraw React component and use it in your app.
import { TLDraw } from '@tldraw/tldraw'
function App() {
return <TLDraw />
}
TLDrawThe TLDraw React component is the tldraw editor exported as a standalone component. You can control the editor through props, or through the TLDrawState’s imperative API.
| Prop | Type | Description |
|---|---|---|
id |
string |
(optional) An id under which to persist the component’s state. |
document |
TLDrawDocument |
(optional) An initial TLDrawDocument object. |
currentPageId |
string |
(optional) A current page id, referencing the TLDrawDocument object provided via the document prop. |
onMount |
(TLDrawState) => void |
(optional) A callback function that will be called when the editor first mounts, receiving the current TLDrawState. |
onChange |
(TLDrawState, string) => void |
(optional) A callback function that will be called whenever the TLDrawState updates. The update will include the current TLDrawState and the reason for the change. |
TLDrawDocumentA TLDrawDocument is an object with three properties:
id - A unique ID for this documentpages - A table of TLPage objectspageStates - A table of TLPageState objectsconst tldocument: TLDrawDocument = {
id: 'doc',
pages: {
page1: {
id: 'page1',
shapes: {},
bindings: {},
},
},
pageStates: {
page1: {
id: 'page1',
selectedIds: [],
currentParentId: 'page1',
camera: {
point: [0, 0],
zoom: 1,
},
},
},
}
Important: In the pages object, each TLPage object must be keyed under its id property. Likewise, each TLPageState object must be keyed under its id. In addition, each TLPageState object must have an id that matches its corresponding page.
In the example above, the page above with the id page1is at tldocument.pages["page1"]. Its corresponding page state has the same id (page1) and is at tldocument.pageStates["page1"].
Your TLPage objects may include shapes: objects that fit one of the TLDrawShape interfaces listed below. All TLDrawShapes extends a common interface:
| Property | Type | Description |
|---|---|---|
id |
string |
A unique ID for the shape. |
name |
string |
The shape’s name. |
type |
string |
The shape’s type. |
parentId |
string |
The ID of the shape’s parent (a shape or its page). |
childIndex |
number |
The shape’s order within its parent’s children, indexed from 1. |
point |
number[] |
The [x, y] position of the shape. |
rotation |
number[] |
(optional) The shape’s rotation in radians. |
children |
string[] |
(optional) The shape’s child shape ids. |
handles |
TLHandle{} |
(optional) A table of TLHandle objects. |
isLocked |
boolean |
True if the shape is locked. |
isHidden |
boolean |
True if the shape is hidden. |
isEditing |
boolean |
True if the shape is currently editing. |
isGenerated |
boolean |
True if the shape is generated. |
isAspectRatioLocked |
boolean |
True if the shape’s aspect ratio is locked. |
Important: In order for re-ordering to work correctly, a shape’s
childIndexvalues must start from 1, not 0. The page or parent shape’s “bottom-most” child should have achildIndexof 1.
The ShapeStyle object is a common style API for all shapes.
| Property | Type | Description |
|---|---|---|
size |
SizeStyle |
The size of the shape’s stroke. |
dash |
DashStyle |
The style of the shape’s stroke. |
color |
ColorStyle |
The shape’s color. |
isFilled |
boolean |
(optional) True if the shape is filled. |
| Property | Type | Description |
|---|---|---|
points |
number[][] |
An array of points as [x, y, pressure]. |
| Property | Type | Description |
|---|---|---|
size |
number[] |
The [width, height] of the rectangle. |
| Property | Type | Description |
|---|---|---|
radius |
number[] |
The [x, y] radius of the ellipse. |
| Property | Type | Description |
|---|---|---|
handles |
object |
An object with three TLHandle properties: start, end, and bend. |
| Property | Type | Description |
|---|---|---|
text |
string |
The shape’s text content. |
Run nx test tldraw to execute the unit tests via Jest.