@@ -14,6 +14,7 @@ import {
14
14
View ,
15
15
Colors
16
16
} from 'react-native-ui-lib' ;
17
+ // @ts -expect-error
17
18
import * as ExampleScreenPresenter from '../ExampleScreenPresenter' ;
18
19
19
20
const AVATAR_SIZE = 48 ;
@@ -45,6 +46,7 @@ export default class SkeletonViewScreen extends Component {
45
46
dataType : DATA_TYPE . List ,
46
47
listType : LIST_TYPE . Regular ,
47
48
isLarge : false ,
49
+ showEndContent : true ,
48
50
key : 1
49
51
} ;
50
52
@@ -67,8 +69,24 @@ export default class SkeletonViewScreen extends Component {
67
69
this . setState ( { isLarge : ! isLarge , key : key + 1 , isDataAvailable : false } ) ;
68
70
} ;
69
71
72
+ setEndContent = ( ) => {
73
+ const { showEndContent, key} = this . state ;
74
+ this . setState ( { showEndContent : ! showEndContent , key : key + 1 , isDataAvailable : false } ) ;
75
+ } ;
76
+
77
+ renderEndContent = ( ) => {
78
+ const { showEndContent} = this . state ;
79
+ if ( showEndContent ) {
80
+ return (
81
+ < View flex right paddingR-20 >
82
+ < SkeletonView width = { 45 } height = { 18 } borderRadius = { BorderRadiuses . br10 } />
83
+ </ View >
84
+ ) ;
85
+ }
86
+ } ;
87
+
70
88
renderTopSection = ( ) => {
71
- const { isDataAvailable, isLarge, dataType} = this . state ;
89
+ const { isDataAvailable, isLarge, showEndContent , dataType} = this . state ;
72
90
return (
73
91
< View marginH-page marginV-s1 >
74
92
{ ExampleScreenPresenter . renderHeader . call ( this , 'Skeleton' ) }
@@ -83,21 +101,30 @@ export default class SkeletonViewScreen extends Component {
83
101
} ) }
84
102
< View row centerV spread >
85
103
< Button
86
- label = { isDataAvailable ? 'Hide data' : 'Show data' }
104
+ label = { 'Show data' }
87
105
style = { [ styles . toggleButton ] }
88
- size = { Button . sizes . small }
106
+ size = { Button . sizes . xSmall }
89
107
outline = { ! isDataAvailable }
90
108
onPress = { this . toggleVisibility }
91
109
/>
92
110
{ dataType === DATA_TYPE . List && (
93
111
< Button
94
- label = { isLarge ? 'Set items to small' : 'Set items to large '}
112
+ label = { 'Large items'}
95
113
style = { [ styles . toggleButton ] }
96
- size = { Button . sizes . small }
114
+ size = { Button . sizes . xSmall }
97
115
outline = { ! isLarge }
98
116
onPress = { this . setSize }
99
117
/>
100
118
) }
119
+ { dataType === DATA_TYPE . List && (
120
+ < Button
121
+ label = { 'End content' }
122
+ style = { [ styles . toggleButton ] }
123
+ size = { Button . sizes . xSmall }
124
+ outline = { ! showEndContent }
125
+ onPress = { this . setEndContent }
126
+ />
127
+ ) }
101
128
</ View >
102
129
</ View >
103
130
) ;
@@ -119,9 +146,17 @@ export default class SkeletonViewScreen extends Component {
119
146
) ;
120
147
} ;
121
148
122
- renderListItemsData = ( contentData ?: any ) => {
123
- const { isLarge} = this . state ;
124
- const { hasAvatar, hasThumbnail} = contentData || { } ;
149
+ renderEndLabel = ( ) => {
150
+ return (
151
+ < View centerV paddingR-20 >
152
+ < Text > Verified</ Text >
153
+ </ View >
154
+ ) ;
155
+ }
156
+
157
+ renderListItemsData = ( customValue ?: any ) => {
158
+ const { isLarge, showEndContent} = this . state ;
159
+ const { hasAvatar, hasThumbnail} = customValue || { } ;
125
160
126
161
return (
127
162
< React . Fragment >
@@ -153,6 +188,7 @@ export default class SkeletonViewScreen extends Component {
153
188
</ ListItem . Part >
154
189
) }
155
190
</ ListItem . Part >
191
+ { showEndContent && this . renderEndLabel ( ) }
156
192
</ ListItem >
157
193
) ;
158
194
} ) }
@@ -171,11 +207,10 @@ export default class SkeletonViewScreen extends Component {
171
207
return (
172
208
< SkeletonView
173
209
template = { SkeletonView . templates . LIST_ITEM }
174
- contentType = { contentType }
175
- size = { size }
210
+ listProps = { { size, contentType, renderEndContent : this . renderEndContent } }
176
211
showContent = { isDataAvailable }
177
212
renderContent = { this . renderListItemsData }
178
- contentData = { { hasAvatar, hasThumbnail} }
213
+ customValue = { { hasAvatar, hasThumbnail} }
179
214
times = { NUMBER_OF_ITEMS_TO_SHOW }
180
215
/>
181
216
) ;
0 commit comments