<commit_before>import React, { cloneElement, PropTypes } from 'react';
import { Image, ListView, StyleSheet, Text, TouchableHighlight, View } from 'react-native';
import AbstractComponent from './AbstractComponent';
import right from './images/right.png';

const padding = 15;

// noinspection JSSuspiciousNameCombination
const styles = StyleSheet.create({
  container: {
    borderBottomWidth: StyleSheet.hairlineWidth,
    borderTopWidth: StyleSheet.hairlineWidth
  },
  rowContainer: {
    backgroundColor: '#b3b3b3'
  },
  row: {
    flex: 1,
    flexDirection: 'row',
    height: 45,
    alignItems: 'center',
    backgroundColor: '#FFF',
    paddingHorizontal: padding
  },
  header: {
    marginRight: padding
  },
  body: {
    flex: 1
  },
  bodyTextStyle: {
    color: '#1a1a1a',
    fontSize: 14
  },
  footer: {
    flexDirection: 'row',
    alignItems: 'center'
  },
  footerTextStyle: {
    color: '#b3b3b3'
  },
  separator: {
    height: StyleSheet.hairlineWidth
  },
  right: {
    width: 18,
    height: 18,
    resizeMode: Image.resizeMode.contain
  }
});


export const Row = {
  header: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
  body: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,
  footer: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
  displayRightArrow: PropTypes.bool
};

/**
 * @author 田尘殇Sean(<EMAIL>)
 * @date 16/5/25
 */
class List extends AbstractComponent {

  static propTypes = {
    bodyTextStyle: Text.propTypes.style,
    cellStyle: View.propTypes.style,
    footerTextStyle: Text.propTypes.style,
    items: PropTypes.array,
    separatorColor: PropTypes.string,
    onItemPress: PropTypes.func
  };

  static defaultProps = {
    alwaysBounceVertical: false,
    rowHasChanged: (r1, r2) => r1 !== r2,
    separatorColor: '#bbbbbb'<commit_msg>颜色引用变量<commit_after>import React, { cloneElement, PropTypes } from 'react';
import { Image, ListView, StyleSheet, Text, TouchableHighlight, View } from 'react-native';
import AbstractComponent from './AbstractComponent';
import right from './images/right.png';
import { Colors, separatorHeight } from './styles';

const padding = 15;

const styles = StyleSheet.create({
  container: {
    borderBottomWidth: separatorHeight,
    borderTopWidth: separatorHeight
  },
  rowContainer: {
    backgroundColor: '#b3b3b3'
  },
  row: {
    flex: 1,
    flexDirection: 'row',
    height: 45,
    alignItems: 'center',
    backgroundColor: '#FFF',
    paddingHorizontal: padding
  },
  header: {
    marginRight: padding
  },
  body: {
    flex: 1
  },
  bodyTextStyle: {
    color: '#1a1a1a',
    fontSize: 14
  },
  footer: {
    flexDirection: 'row',
    alignItems: 'center'
  },
  footerTextStyle: {
    color: '#b3b3b3'
  },
  separator: {
    height: separatorHeight
  },
  right: {
    width: 18,
    height: 18,
    resizeMode: Image.resizeMode.contain
  }
});


export const Row = {
  header: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
  body: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,
  footer: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
  displayRightArrow: PropTypes.bool
};

/**
 * @author 田尘殇Sean(<EMAIL>)
 * @date 16/5/25
 */
class List extends AbstractComponent {

  static propTypes = {
    bodyTextStyle: Text.propTypes.style,
    cellStyle: View.propTypes.style,
    footerTextStyle: Text.propTypes.style,
    items: PropTypes.array,
    separatorColor: PropTypes.string,
    onItemPress: PropTypes.func
  };

  static defaultProps = {
    alwaysBounceVertical: false,
    rowHasChanged: (r1, r2) => r1 !== r2,
    separatorColor: Colors.separator
{'fraction_non_alphanumeric': 0.12819105133132033, 'fraction_numerical': 0.016469942355201758, 'mean_word_length': 3.6658130601792576, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1926199', 'n_tokens_mistral': 1241, 'n_tokens_neox': 1196, 'n_words': 258}