crn-cli
Version:
The Ctrip React Native CLI Tools
1 lines • 2.99 kB
JavaScript
__d(function(g,r,i,a,m,e,d){'use strict';var t=r(d[0]),n=r(d[1]),o=r(d[2]),l=r(d[3]),s=r(d[4]),u=r(d[5]),h=r(d[6]),c=r(d[7]),f=r(d[8]),C=f.FlatList,p=f.StyleSheet,x=f.Text,v=f.View,w=f.Alert,I=r(d[9]),y=r(d[10]),_=r(d[11]),b=_.FooterComponent,E=_.HeaderComponent,S=_.ItemComponent,L=_.PlainInput,T=_.SeparatorComponent,V=_.genItemData,H=_.getItemLayout,F=_.pressItem,R=_.renderSmallSwitchOption,P=(function(f){function p(){var o,h;n(this,p);for(var f=arguments.length,C=new Array(f),x=0;x<f;x++)C[x]=arguments[x];return(h=l(this,(o=s(p)).call.apply(o,[this].concat(C)))).state={data:V(1e3),filterText:'',fixedHeight:!0,logViewable:!1,numColumns:2,virtualized:!0},h._onChangeFilterText=function(t){h.setState(function(){return{filterText:t}})},h._onChangeNumColumns=function(t){h.setState(function(){return{numColumns:Number(t)}})},h._renderItemComponent=function(t){var n=t.item;return c.createElement(v,{style:A.card},c.createElement(S,{item:n,fixedHeight:h.state.fixedHeight,onPress:h._pressItem}))},h._onViewableItemsChanged=function(n){h.state.logViewable&&y('onViewableItemsChanged: ',n.changed.map(function(n){return t({},n,{item:'...'})}))},h._pressItem=function(t){F(u(h),t)},h}return h(p,f),o(p,[{key:"render",value:function(){var t=new RegExp(String(this.state.filterText),'i'),n=this.state.data.filter(function(n){return t.test(n.text)||t.test(n.title)});return c.createElement(I,{title:this.props.navigator?null:'<FlatList> - MultiColumn',noSpacer:!0,noScroll:!0},c.createElement(v,{style:A.searchRow},c.createElement(v,{style:A.row},c.createElement(L,{onChangeText:this._onChangeFilterText,placeholder:"Search...",value:this.state.filterText}),c.createElement(x,null," numColumns: "),c.createElement(L,{clearButtonMode:"never",onChangeText:this._onChangeNumColumns,value:this.state.numColumns?String(this.state.numColumns):''})),c.createElement(v,{style:A.row},R(this,'virtualized'),R(this,'fixedHeight'),R(this,'logViewable'))),c.createElement(T,null),c.createElement(C,{ListFooterComponent:b,ListHeaderComponent:E,getItemLayout:this.state.fixedHeight?this._getItemLayout:void 0,data:n,key:this.state.numColumns+(this.state.fixedHeight?'f':'v'),numColumns:this.state.numColumns||1,onRefresh:function(){return w.alert('Alert','onRefresh: nothing to refresh :P')},refreshing:!1,renderItem:this._renderItemComponent,disableVirtualization:!this.state.virtualized,onViewableItemsChanged:this._onViewableItemsChanged}))}},{key:"_getItemLayout",value:function(t,n){var o=H(t,n).length+2*(z+k);return{length:o,offset:o*n,index:n}}}]),p})(c.PureComponent),z=4,k=1,A=p.create({card:{margin:z,borderRadius:10,flex:1,overflow:'hidden',borderColor:'lightgray',borderWidth:k},row:{flexDirection:'row',alignItems:'center'},searchRow:{padding:10}});e.title='<FlatList> - MultiColumn',e.description='Performant, scrollable grid of data.',e.examples=[{title:'Simple flat list multi column',render:function(){return c.createElement(P,null)}}]},666720,[51,3,4,5,8,7,9,11,15,666681,149,666690]);