@@ -12,12 +12,14 @@ type TAppProps = {
12
12
type TAppState = {
13
13
disableFirstRow : boolean
14
14
reversed : boolean
15
+ showSelectableGroup : boolean
15
16
}
16
17
17
18
class App extends Component < TAppProps , TAppState > {
18
19
state = {
19
20
disableFirstRow : false ,
20
- reversed : false
21
+ reversed : false ,
22
+ showSelectableGroup : true
21
23
}
22
24
23
25
countersRef = createRef < Counters > ( )
@@ -34,6 +36,12 @@ class App extends Component<TAppProps, TAppState> {
34
36
this . setState ( state => ( { reversed : ! state . reversed } ) )
35
37
}
36
38
39
+ toggleSelectableGroup = ( ) => {
40
+ this . setState ( state => ( {
41
+ showSelectableGroup : ! state . showSelectableGroup
42
+ } ) )
43
+ }
44
+
37
45
handleSelecting = ( selectingItems : TAlbumItem ) => {
38
46
this . countersRef . current . handleSelecting ( selectingItems )
39
47
}
@@ -42,13 +50,18 @@ class App extends Component<TAppProps, TAppState> {
42
50
this . countersRef . current . handleSelectionFinish ( selectedItems )
43
51
}
44
52
53
+ handleSelectedItemUnmount = ( unmountedItem , selectedItems ) => {
54
+ console . log ( 'hadneleSelectedItemUnmount' )
55
+ this . countersRef . current . handleSelectionFinish ( selectedItems )
56
+ }
57
+
45
58
handleSelectionClear ( ) {
46
59
console . log ( 'Cancel selection' )
47
60
}
48
61
49
62
render ( ) {
50
63
const { items } = this . props
51
- const { disableFirstRow, reversed } = this . state
64
+ const { disableFirstRow, reversed, showSelectableGroup } = this . state
52
65
53
66
const itemsToRender = disableFirstRow ? items . slice ( 5 ) : items
54
67
const orderedItems = reversed ? itemsToRender . slice ( ) . reverse ( ) : itemsToRender
@@ -62,21 +75,27 @@ class App extends Component<TAppProps, TAppState> {
62
75
< button className = "btn" type = "button" onClick = { this . toggleOrder } >
63
76
Toggle order
64
77
</ button >
65
- < SelectableGroup
66
- ref = { this . getSelectableGroupRef }
67
- className = "main"
68
- clickClassName = "tick"
69
- enableDeselect = { true }
70
- tolerance = { 0 }
71
- deselectOnEsc = { true }
72
- allowClickWithoutSelected = { false }
73
- duringSelection = { this . handleSelecting }
74
- onSelectionClear = { this . handleSelectionClear }
75
- onSelectionFinish = { this . handleSelectionFinish }
76
- ignoreList = { [ '.not-selectable' ] }
77
- >
78
- < List items = { orderedItems } />
79
- </ SelectableGroup >
78
+ < button className = "btn" type = "button" onClick = { this . toggleSelectableGroup } >
79
+ Toggle group
80
+ </ button >
81
+ { showSelectableGroup && (
82
+ < SelectableGroup
83
+ ref = { this . getSelectableGroupRef }
84
+ className = "main"
85
+ clickClassName = "tick"
86
+ enableDeselect = { true }
87
+ tolerance = { 0 }
88
+ deselectOnEsc = { true }
89
+ allowClickWithoutSelected = { false }
90
+ duringSelection = { this . handleSelecting }
91
+ onSelectionClear = { this . handleSelectionClear }
92
+ onSelectionFinish = { this . handleSelectionFinish }
93
+ onSelectedItemUnmount = { this . handleSelectedItemUnmount }
94
+ ignoreList = { [ '.not-selectable' ] }
95
+ >
96
+ < List items = { orderedItems } />
97
+ </ SelectableGroup >
98
+ ) }
80
99
</ div >
81
100
)
82
101
}
0 commit comments