import React, { Component } from 'react';
import { connect }  from 'react-redux';
import logo from './logo.svg';
import './App.css';

class App extends Component { 
        constructor(props){
            super(props);
             this.arrRefs = [];
        }
    
   handleAdd(){
       this.props.onHandleAdd(this.inputAdd.value);
       this.inputAdd.value = '';
   }
   handleRemove(){
       alert(this.arrRefs.length);     
       let checked = false;
            for(let i = 0; i < this.arrRefs.length;i++){
                
                if(this.arrRefs[i].checked == 'true'){ 
                    this.arrRefs.splice(this.arrRefs[i],1);
                    i--;
                }
            }
          
         this.props.onHandleRemove(this.arrRefs);
         
   }
    
    render() {
    return (
      <div className="todoMain">
          <span className="todo">TODO</span>
			
            <input className='val' placeholder="Add a Task..." type="text" ref={(input) => { this.inputAdd = input }}/>
    
			<input  type="button" value='Add' ref={ input => this.input = input} onClick={this.handleAdd.bind(this)} />
            
			<input  type="button" value='Clear' onClick={this.handleRemove.bind(this)} />
                                
            {this.props.newState.map((n,i)=>{
                return (
       		<div className="listElem" key={i} >
       		       <strong>{n}</strong>
                    <input type="checkbox" ref={ input=> this.arrRefs.push(input)} />
			</div>
            )})
            }
    </div>
  )
}
}

 
export default connect(
            state => (
                 {
                    newState: state
                }
                ),
            dispatch =>({
              onHandleAdd(payload){
                  
                  dispatch({type:'ADD_TODO', payload: payload});
              },
             onHandleRemove(payload){
                 console.log(payload.length)
                 dispatch({type:'REMOVE_TODO', payload: payload});
             }    
            })             
)(App);
import React from 'react';
import ReactDOM from 'react-dom';
import { createStore } from 'redux';
import { Provider } from 'react-redux';

import App from './App';
import registerServiceWorker from './registerServiceWorker';
import './index.css';

const initialState = ['Learn React', 'Learn Redux']

function reducer(state=initialState,action) { 
    if(action.type ==='ADD_TODO'){
       
        return [...state, action.payload];
    }else if(action.type === 'REMOVE_TODO'){
        return action.payload;
    }
    return state;
}

const store = createStore(reducer);

ReactDOM.render(<Provider store={store}><App /></Provider>, document.getElementById('root'));
registerServiceWorker();