<commit_before>import React        from 'react';
import {
  TableRow,
  TableRowColumn,
} from 'material-ui/Table';
import RaisedButton from 'material-ui/RaisedButton';
import datePrettify from '../utils/datePrettify';
import { getUrl }   from '../model/Track';
import {
  NO_IMAGE,
  DEAD_IMAGE,
  getImageOfProvider,
} from '../utils/thumbnail';

function getThumbnailUrl(playlist) {
  if (playlist.state === 'alive') {
    return playlist.thumbnail_url || NO_IMAGE;
  }
  return DEAD_IMAGE;
}

const PlaylistListTableRow = ({ playlist, onDetailButtonClick }) => (
  <TableRow>
    <TableRowColumn>
      <a href={getUrl(playlist.url)}>
        <img
          src={getThumbnailUrl(playlist)}
          role="presentation"
          className="playlist-list-thumb"
        />
      </a>
    </TableRowColumn>
    <TableRowColumn>
      <img
        role="presentation"
        src={getImageOfProvider(playlist.provider)}
        width="16" height="16"
      />
      {playlist.title || `${playlist.provider} id: ${playlist.identifier}`}
    </TableRowColumn>
    <TableRowColumn>
      {datePrettify(playlist.published_at)}
    </TableRowColumn>
    <TableRowColumn>
      <RaisedButton
        label="Detail"
        primary
        onClick={() => onDetailButtonClick(playlist)}
      />
    </TableRowColumn>
  </TableRow>
);

PlaylistListTableRow.propTypes = {
  playlist: React.PropTypes.shape({
    title:         React.PropTypes.string.isRequired,
    provider:      React.PropTypes.string.isRequired,
    identifier:    React.PropTypes.string.isRequired,
    thumbnail_url: React.PropTypes.string,
  }),
  onDetailButtonClick: React.PropTypes.func,
};

export default PlaylistListTableRow;
<commit_msg>Fix PlaylistListTableRow: playlist url<commit_after>import React        from 'react';
import {
  TableRow,
  TableRowColumn,
} from 'material-ui/Table';
import RaisedButton from 'material-ui/RaisedButton';
import datePrettify from '../utils/datePrettify';
import { getUrl }   from '../model/Playlist';
import {
  NO_IMAGE,
  DEAD_IMAGE,
  getImageOfProvider,
} from '../utils/thumbnail';

function getThumbnailUrl(playlist) {
  if (playlist.state === 'alive') {
    return playlist.thumbnail_url || NO_IMAGE;
  }
  return DEAD_IMAGE;
}

const PlaylistListTableRow = ({ playlist, onDetailButtonClick }) => (
  <TableRow>
    <TableRowColumn>
      <a href={getUrl(playlist)}>
        <img
          src={getThumbnailUrl(playlist)}
          role="presentation"
          className="playlist-list-thumb"
        />
      </a>
    </TableRowColumn>
    <TableRowColumn>
      <img
        role="presentation"
        src={getImageOfProvider(playlist.provider)}
        width="16" height="16"
      />
      {playlist.title || `${playlist.provider} id: ${playlist.identifier}`}
    </TableRowColumn>
    <TableRowColumn>
      {datePrettify(playlist.published_at)}
    </TableRowColumn>
    <TableRowColumn>
      <RaisedButton
        label="Detail"
        primary
        onClick={() => onDetailButtonClick(playlist)}
      />
    </TableRowColumn>
  </TableRow>
);

PlaylistListTableRow.propTypes = {
  playlist: React.PropTypes.shape({
    title:         React.PropTypes.string.isRequired,
    provider:      React.PropTypes.string.isRequired,
    identifier:    React.PropTypes.string.isRequired,
    thumbnail_url: React.PropTypes.string,
  }),
  onDetailButtonClick: React.PropTypes.func,
};

export default PlaylistListTableRow;

{'fraction_non_alphanumeric': 0.12833914053426249, 'fraction_numerical': 0.0023228803716608595, 'mean_word_length': 3.125748502994012, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 37, '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': '3302244', 'n_tokens_mistral': 1093, 'n_tokens_neox': 1092, 'n_words': 181}