<commit_before>var React = require('react');

/**
 * フォルダー内の詳細情報コンポーネントです。
 */
var FolderDetail = React.createClass({
    /**
     * コンポーネントの描画オブジェクトを取得します。
     *
     * @return {Object} 描画オブジェクト。
     */
    render: function () {
        var fileutil = require('../file-utility');
        var items = this.props.items.map((item, index)=> {
            var style = ( item === this.props.currentItem ? 'selected' : '' );
            var icon = ( item.isDirectory ? 'icon-folder' : 'icon-file' );
            var type = fileutil.getItemType(item);
            var size = fileutil.bytesToSize(item.size);
            var mode = fileutil.getPermissionString(item.mode, item.isDirectory);
            var date = fileutil.dateToString(item.mtime);

            return (
                <tr
                    key={index}
                    className={style}
                    tabIndex={index}
                    onClick={this.onClickItem.bind( this, item )}
                    onKeyPress={this.onKeyPress.bind(this,item,index)}
                    onDoubleClick={this.onDoubleClickItem.bind( this, item )}>
                    <td><i className={icon}></i> {item.name}</td>
                    <td>{type}</td>
                    <td>{size}</td>
                    <td>{mode}</td>
                    <td>{date}</td>
                </tr>
            );
        }, this);

        return (
            <table className="items">
                <thead>
                <tr>
                    <th>Name</th>
                    <th>Type</th>
                    <th>Size</th>
                    <th>Permission</th>
                    <th>Modified</th>
                </tr>
                </thead>
                <tbody>
                {items}
                </tbody>
            </table>
        );
    },
    /**
     * アイテムがクリックされた時に発生します。
     *
     * @param {Object} item アイテム情報。
     */
    onClickItem: function (item) {
        this.props.onClickItem(item);
    },
    onKeyPress: function(item, index){
        this.props.onKeyPress(item, index);
    },
    /**
     * アイテムがダブル クリックされた時に発生します。
     *
     * @param {Object} item アイテム情報。
     */
    onDoubleClickItem: function (item) {
        if (item.isDirectory) {
            // ここでフォルダ ツリーに変更通知して展開させたい

        } else {
            var fileutil = require('../file-utility');
            fileutil.shellOpenItem(item.path);
        }
    }
});

module.exports = FolderDetail;<commit_msg>feat(Component): Order by date last modified<commit_after>var React = require('react');

/**
 * フォルダー内の詳細情報コンポーネントです。
 */
var FolderDetail = React.createClass({
    sortByTime(items){
        return this.props.items.sort(function (aItem, bItem) {
            return bItem.mtime - aItem.mtime;
        });
    },
    /**
     * コンポーネントの描画オブジェクトを取得します。
     *
     * @return {Object} 描画オブジェクト。
     */
    render: function () {
        var fileutil = require('../file-utility');
        var items = this.sortByTime(this.props.items).map((item, index)=> {
            var style = ( item === this.props.currentItem ? 'selected' : '' );
            var icon = ( item.isDirectory ? 'icon-folder' : 'icon-file' );
            var type = fileutil.getItemType(item);
            var size = fileutil.bytesToSize(item.size);
            //var mode = fileutil.getPermissionString(item.mode, item.isDirectory);
            var date = fileutil.dateToString(item.mtime);

            return (
                <tr
                    key={index}
                    className={style}
                    tabIndex={index}
                    onClick={this.onClickItem.bind( this, item )}
                    onKeyPress={this.onKeyPress.bind(this,item,index)}
                    onDoubleClick={this.onDoubleClickItem.bind( this, item )}>
                    <td><i className={icon}></i> {item.name}</td>
                    <td>{type}</td>
                    <td>{size}</td>
                    <td>{date}</td>
                </tr>
            );
        }, this);

        return (
            <table className="items">
                <thead>
                <tr>
                    <th>Name</th>
                    <th>Type</th>
                    <th>Size</th>
                    <th>Modified</th>
                </tr>
                </thead>
                <tbody>
                {items}
                </tbody>
            </table>
        );
    },
    /**
     * アイテムがクリックされた時に発生します。
     *
     * @param {Object} item アイテム情報。
     */
    onClickItem: function (item) {
        this.props.onClickItem(item);
    },
    onKeyPress: function (item, index) {
        this.props.onKeyPress(item, index);
    },
    /**
     * アイテムがダブル クリックされた時に発生します。
     *
     * @param {Object} item アイテム情報。
     */
    onDoubleClickItem: function (item) {
        if (item.isDirectory) {
            // ここでフォルダ ツリーに変更通知して展開させたい

        } else {
            var fileutil = require('../file-utility');
            fileutil.shellOpenItem(item.path);
        }
    }
});

module.exports = FolderDetail;
{'fraction_non_alphanumeric': 0.13846459035905576, 'fraction_numerical': 0.0, 'mean_word_length': 1.3727058823529412, 'pattern_counts': {'":': 0, '<': 63, '<?xml version=': 0, '>': 65, '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': '4318871', 'n_tokens_mistral': 1656, 'n_tokens_neox': 1584, 'n_words': 239}