Pluggable components to add a kanban board to your application
Pluggable components to add a kanban board to your application
Pluggable components to add a Trello (like) kanban board to your application
This library is not affiliated, associated, authorized, endorsed by or in any way officially connected to Trello, Inc.
Trellois a registered trademark of Atlassian, Inc.
Install using npm or yarn
$ npm install --save react-trello
or
$ yarn add react-trello
The Board component takes a prop called data that contains all the details related to rendering the board. A sample data json is given here to illustrate the contract:
const data = {
lanes: [
{
id: 'lane1',
title: 'Planned Tasks',
label: '2/2',
cards: [
{id: 'Card1', title: 'Write Blog', description: 'Can AI make memes', label: '30 mins', draggable: false},
{id: 'Card2', title: 'Pay Rent', description: 'Transfer via NEFT', label: '5 mins', metadata: {sha: 'be312a1'}}
]
},
{
id: 'lane2',
title: 'Completed',
label: '0/0',
cards: []
}
]
}
draggable property of Card object is true by default.
The data is passed to the board component and that's it.
import React from 'react'
import Board from 'react-trello'
export default class App extends React.Component {
render() {
return <Board data={data} />
}
}
Refer to storybook for detailed examples: https://rcdexta.github.io/react-trello/
Also refer to the sample project that uses react-trello as illustration: https://github.com/rcdexta/react-trello-example
$ yarn add rcdexta/react-trello
and
import Board from 'react-trello/src'
Breaking changes. Since version 2.2 these properties are removed: addLaneTitle, addCardLink, customLaneHeader, newCardTemplate, newLaneTemplate,
and customCardLayout with children element.
Follow upgrade instructions to make easy migration.
This is the container component that encapsulates the lanes and cards
handleDragStart(cardId, laneId)
handleDragEnd
function
Callback function triggered when card drag ends, return false if you want to cancel drop: handleDragEnd(cardId, sourceLaneId, targetLaneId, position, cardDetails)
handleLaneDragStart
function
Callback function triggered when lane drag is started: handleLaneDragStart(laneId)
handleLaneDragEnd
function
Callback function triggered when lane drag ends: handleLaneDragEnd(removedIndex, addedIndex, payload)
onDataChange
function
Called everytime the data changes due to user interaction or event bus: onDataChange(newData)
onCardClick
function
Called when a card is clicked: onCardClick(cardId, metadata, laneId)
onCardAdd
function
Called when a new card is added: onCardAdd(card, laneId)
onBeforeCardDelete
function
Called before delete a card, please call the callback() if confirm to delete a card: onConfirmCardDelete(callback)
onCardDelete
function
Called when a card is deleted: onCardDelete(cardId, laneId)
onCardMoveAcrossLanes
function
Called when a card is moved across lanes onCardMoveAcrossLanes(fromLaneId, toLaneId, cardId, index)
onLaneAdd
function
Called when a new lane is added: onLaneAdd(params)
onLaneDelete
function
Called when a lane is deleted onLaneDelete(laneId)
onLaneUpdate
function
Called when a lane attributes are updated onLaneUpdate(laneId, data)
onLaneClick
function
Called when a lane is clicked onLaneClick(laneId). Card clicks are not propagated to lane click event
onLaneScroll
function
Called when a lane is scrolled to the end: onLaneScroll(requestedPage, laneId)
laneSortFunction(card1, card2)
String. Look into ./src/locales for keys list
Refer to stories folder for examples on many more options for customization.
It is possible to make the entire board editable by setting the editable prop to true. This switch prop will ena
No open issues yet, or sync has not completed.