<commit_before>import autobind from 'autobind-decorator'
import React from 'react'
import { connect } from 'react-redux'
import ReactCSSTransitionGroup from 'react-addons-css-transition-group'
import Lightbox from 'react-images'
import { isSP } from '../utils/util'
import Slider from 'react-slick'
import Actions from '../actions/home'

@autobind
class Timeline extends React.Component {

    // this.props.timelineJsonの個数分elementを格納したSliderをレンダリングする
    renderSliderRoot(timeline) {
        const rows = timeline.map((e) => {
            if (e.error) return
            
            const row = e.map(this.renderSliderRow)
            
            return (
                <section>
                    <ReactCSSTransitionGroup
                        transitionName="timeline"
                        transitionEnterTimeout={500}
                        transitionLeaveTimeout={500}
                        id="timeline"
                        className="row"
                    >
                        {row}
                    </ReactCSSTransitionGroup>
                </section>
            )
        })
    
        /***
         *
         *フリックされたら発火
         *  nextかprevかをcurrentSlide, nextSlideから判定
         *      currentSlide === 2 && nextSlide === 0
         *          next
         *      currentSlide === 0 && nextSlide 2
         *          prev
         *      currentSlide < nextSlide
         *          next
         *      currentSlide > nextSlide
         *          prev
         *
         *  nextなら
         *      currentDateの次に当たる日付をtimelineDateListから探す
         *          次のtimelineDateListがあれば
         *              その値を引数にfetchDailyTweet()を起動する
         *                  viewとcurrentDateが更新される
         *          次のtimelineDateListがなければ
         *              何もしない
         *  prevなら
         *      currentDateの前に当たる日付をtimelineDateListから探す
         *          前のtimelineDateListがあれば
         *              その値を引数にfetchDailyTweet()を起動する
         *                  viewとcurrentDateが更新される
         *      currentDateが更新される
         *          前のtimelineDateListがなければ
         *              何もしない
         *
         * @type {{beforeChange: beforeChange}}
         */
        // const sliderSetting = {
        //     beforeChange: (currentSlide, nextSlide) => {
        //         const next = 'next'
        //         const prev = 'prev'
        //         var direction = next
        //         switch (true) {
        //         case currentSlide === 2 && nextSlide === 0:
        //             direction = next
        //             break
        //         case currentSlide === 0 && nextSlide === 2:
        //             direction = prev
        //             break
        //         case currentSlide < nextSlide:
        //             direction = next
        //             break
        //         case currentSlide > nextSlide:
        //             direction = prev
        //             break
        //         }
        //
        //         if (direction === next) {
        //             const n = this.props.timelineDateList.indexOf(this.props.currentDate) - 1
        //             if (this.props.timelineDateList[n]) {
        //                 this.props.fetchSingleDate(this.props.username, this.props.timelineDateList[n])
        //             }
        //         } else if (direction === prev) {
        //             const p = this.props.timelineDateList.indexOf(this.props.currentDate) + 1
        //             if (this.props.timelineDateList[p]) {
        //                 this.props.fetchSingleDate(this.props.username, this.props.timelineDateList[p])
        //             }
        //         }
        //     }
        // }
        
        const settings = {
            arrows: false,
            swipeToSlide: false
        }
        
        return (
            <Slider {...settings}>
                {rows}
            </Slider>
        )
    }
    
    render() {
        if (typeof this.props.timelineJson == 'undefined' || !this.props.timelineJson.length) {
            return (
                <div id="timeline" className="row">
                    <div className="row" style={{margin: 0}}>
                        <section
                            className='timeline-item error-msg col-lg-offset-2 col-lg-8 col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10'>
                            <p>tweet not found.</p>
                        </section>
                    </div><commit_msg>fix unuse option<commit_after>import autobind from 'autobind-decorator'
import React from 'react'
import { connect } from 'react-redux'
import ReactCSSTransitionGroup from 'react-addons-css-transition-group'
import Lightbox from 'react-images'
import { isSP } from '../utils/util'
import Slider from 'react-slick'
import Actions from '../actions/home'

@autobind
class Timeline extends React.Component {

    // this.props.timelineJsonの個数分elementを格納したSliderをレンダリングする
    renderSliderRoot(timeline) {
        const rows = timeline.map((e) => {
            if (e.error) return
            
            const row = e.map(this.renderSliderRow)
            
            return (
                <section>
                    <ReactCSSTransitionGroup
                        transitionName="timeline"
                        transitionEnterTimeout={500}
                        transitionLeaveTimeout={500}
                        id="timeline"
                        className="row"
                    >
                        {row}
                    </ReactCSSTransitionGroup>
                </section>
            )
        })
    
        /***
         *
         *フリックされたら発火
         *  nextかprevかをcurrentSlide, nextSlideから判定
         *      currentSlide === 2 && nextSlide === 0
         *          next
         *      currentSlide === 0 && nextSlide 2
         *          prev
         *      currentSlide < nextSlide
         *          next
         *      currentSlide > nextSlide
         *          prev
         *
         *  nextなら
         *      currentDateの次に当たる日付をtimelineDateListから探す
         *          次のtimelineDateListがあれば
         *              その値を引数にfetchDailyTweet()を起動する
         *                  viewとcurrentDateが更新される
         *          次のtimelineDateListがなければ
         *              何もしない
         *  prevなら
         *      currentDateの前に当たる日付をtimelineDateListから探す
         *          前のtimelineDateListがあれば
         *              その値を引数にfetchDailyTweet()を起動する
         *                  viewとcurrentDateが更新される
         *      currentDateが更新される
         *          前のtimelineDateListがなければ
         *              何もしない
         *
         * @type {{beforeChange: beforeChange}}
         */
        // const sliderSetting = {
        //     beforeChange: (currentSlide, nextSlide) => {
        //         const next = 'next'
        //         const prev = 'prev'
        //         var direction = next
        //         switch (true) {
        //         case currentSlide === 2 && nextSlide === 0:
        //             direction = next
        //             break
        //         case currentSlide === 0 && nextSlide === 2:
        //             direction = prev
        //             break
        //         case currentSlide < nextSlide:
        //             direction = next
        //             break
        //         case currentSlide > nextSlide:
        //             direction = prev
        //             break
        //         }
        //
        //         if (direction === next) {
        //             const n = this.props.timelineDateList.indexOf(this.props.currentDate) - 1
        //             if (this.props.timelineDateList[n]) {
        //                 this.props.fetchSingleDate(this.props.username, this.props.timelineDateList[n])
        //             }
        //         } else if (direction === prev) {
        //             const p = this.props.timelineDateList.indexOf(this.props.currentDate) + 1
        //             if (this.props.timelineDateList[p]) {
        //                 this.props.fetchSingleDate(this.props.username, this.props.timelineDateList[p])
        //             }
        //         }
        //     }
        // }
        
        const settings = {
            arrows: false
        }
        
        return (
            <Slider {...settings}>
                {rows}
            </Slider>
        )
    }
    
    render() {
        if (typeof this.props.timelineJson == 'undefined' || !this.props.timelineJson.length) {
            return (
                <div id="timeline" className="row">
                    <div className="row" style={{margin: 0}}>
                        <section
                            className='timeline-item error-msg col-lg-offset-2 col-lg-8 col-md-offset-1 col-md-10 col-sm-offset-1 col-sm-10 col-xs-offset-1 col-xs-10'>
                            <p>tweet not found.</p>
                        </section>
                    </div>
{'fraction_non_alphanumeric': 0.09705295812098383, 'fraction_numerical': 0.006204298692665633, 'mean_word_length': 1.0727898966704936, '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': '3734337', 'n_tokens_mistral': 2531, 'n_tokens_neox': 2436, 'n_words': 407}