-
Notifications
You must be signed in to change notification settings - Fork 488
/
Copy pathEditableBoard.story.js
89 lines (82 loc) · 2.3 KB
/
EditableBoard.story.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import React, {Component} from 'react'
import {storiesOf} from '@storybook/react'
import debug from './helpers/debug'
import Board from '../src'
const data = require('./data/base.json')
const smallData = require('./data/data-sort')
const disallowAddingCardData = {...data}
disallowAddingCardData.lanes[0].title = 'Disallowed adding card'
disallowAddingCardData.lanes[0].disallowAddingCard = true
storiesOf('Editable Board', module)
.add(
'Add/Delete Cards',
() => {
const shouldReceiveNewData = nextData => {
debug('Board has changed')
debug(nextData)
}
const handleCardDelete = (cardId, laneId) => {
debug(`Card: ${cardId} deleted from lane: ${laneId}`)
}
const handleCardAdd = (card, laneId) => {
debug(`New card added to lane ${laneId}`)
debug(card)
}
return (
<Board
data={data}
draggable
id="EditableBoard1"
onDataChange={shouldReceiveNewData}
onCardDelete={handleCardDelete}
onCardAdd={handleCardAdd}
onCardClick={(cardId, metadata, laneId) => alert(`Card with id:${cardId} clicked. Card in lane: ${laneId}`)}
editable
/>
)
},
{info: 'Add/delete cards or delete lanes'}
)
.add(
'Add New Lane',
() => {
return (
<Board
data={smallData}
editable
canAddLanes
onLaneAdd={t => debug('You added a line with title ' + t.title)}
/>
)
},
{info: 'Allow adding new lane'}
)
.add(
'Disallow Adding Card for specific Lane',
() => {
return (
<Board
data={disallowAddingCardData}
editable
/>
)
},
{info: 'Can hide the add card button on specific lanes'}
)
.add(
'Inline Edit Lane Title and Cards',
() => {
return (
<Board
data={smallData}
editable
canAddLanes
editLaneTitle
onCardUpdate={ (cardId, data) => debug(`onCardUpdate: ${cardId} -> ${JSON.stringify(data, null, 2)}`)}
onLaneUpdate={ (laneId, data) => debug(`onLaneUpdate: ${laneId} -> ${data.title}`)}
onLaneAdd={t => debug('You added a line with title ' + t.title)}
/>
)
},
{info: 'Allow edit lane title and cards'}
)