<commit_before>import React, { Component } from 'react';
import PropTypes from 'prop-types';

import './Footer.scss';

export default class Footer extends Component {

  static propTypes = {
    copyrightText: PropTypes.string,
    links: PropTypes.array.isRequired,
    light: PropTypes.bool,
    singlePageStick: PropTypes.bool
  }

  static defaultProps = {
    light: false,
    singlePageStick: false
  }

  constructor(props) {
    super(props)
  }

  renderCopy() {
    const year = new Date().getFullYear();
    return (<p className="pe-label">
              Copyright &copy; {year} {this.props.copyrightText}
            </p>);
  }

  renderLinks() {
    let items = [];

    for (let i = 0; i < this.props.links.length; i++) {
      let item = this.props.links[i];
      items.push(<li key={i}>
                   <a href={item.href}>{item.text}</a>
                   <span aria-hidden={true}>|</span>
                 </li>);
    }
    return items;
  }

  render() {

    const { light, singlePageStick } = this.props;
    const lightCheck = light ? 'pe-footer--light':'';
    const stickCheck = singlePageStick ? '--stick':'';

    return (
        <footer className={`pe-footer${stickCheck} pe-label ${lightCheck}`}>
          <ul>
            {this.renderLinks()}
          </ul>
          {this.renderCopy()}
        </footer>
    )
  }
}
<commit_msg>chore: Links open a new browser tab<commit_after>import React, { Component } from 'react';
import PropTypes from 'prop-types';

import './Footer.scss';

export default class Footer extends Component {

  static propTypes = {
    copyrightText: PropTypes.string,
    links: PropTypes.array.isRequired,
    light: PropTypes.bool,
    singlePageStick: PropTypes.bool
  }

  static defaultProps = {
    light: false,
    singlePageStick: false
  }

  constructor(props) {
    super(props)
  }

  renderCopy() {
    const year = new Date().getFullYear();
    return (<p className="pe-label">
              Copyright &copy; {year} {this.props.copyrightText}
            </p>);
  }

  renderLinks() {
    let items = [];

    for (let i = 0; i < this.props.links.length; i++) {
      let item = this.props.links[i];
      items.push(<li key={i}>
                   <a href={item.href} target="_blank">{item.text}</a>
                   <span aria-hidden={true}>|</span>
                 </li>);
    }
    return items;
  }

  render() {

    const { light, singlePageStick } = this.props;
    const lightCheck = light ? 'pe-footer--light':'';
    const stickCheck = singlePageStick ? '--stick':'';

    return (
        <footer className={`pe-footer${stickCheck} pe-label ${lightCheck}`}>
          <ul>
            {this.renderLinks()}
          </ul>
          {this.renderCopy()}
        </footer>
    )
  }
}

{'fraction_non_alphanumeric': 0.1506849315068493, 'fraction_numerical': 0.0007209805335255948, 'mean_word_length': 2.241822429906542, 'pattern_counts': {'":': 0, '<': 29, '<?xml version=': 0, '>': 27, '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': '1508621', 'n_tokens_mistral': 876, 'n_tokens_neox': 858, 'n_words': 193}