import React from 'react';
import {connect} from 'react-redux';
import {SETTEXTMODEVALUE} from '@store/types/mainSuit';
import {SETCURRENTTEXTMODEVALUE} from '@store/types/currentIll';
import {SETOTHERTEXTMODEVALUE} from '@store/types/otherHistory';
import {SETCHECKTEXTMODEVALUE} from '@store/types/checkBody';
import { SETPASTTEXTMODEVALUE } from '@store/types/pastHistory'
import { SETPERSONALTEXTMODEVALUE } from '@store/types/personalHistory'
import { SETFAMILYTEXTMODEVALUE } from '@store/types/familyHistory'
import { SETMARRIAGETEXTMODEVALUE } from '@store/types/marriageHistory'
import { SETMENSTRUATIONTEXTMODEVALUE } from '@store/types/menstruationHistory'

import BlockInp from '@common/components/BlockInp';
import {didPushParamChange,isAllPartClear,getAllDataList,getAllDataStringList,isAllClear} from '@utils/tools';
import {embedPush} from '@store/async-actions/pushMessage';

function mapStateToProps(state){//console.log(state,999999999)
  const {homePage} = state;
  return {
    isRead:homePage.isRead,
  }
}

const actionsType = {
  '1': SETTEXTMODEVALUE, // 主述
  '2': SETCURRENTTEXTMODEVALUE, // 现病史
  // '3': SETOTHERTEXTMODEVALUE,  // 其他史
  '4': SETCHECKTEXTMODEVALUE,   // 查体
  '13': SETPASTTEXTMODEVALUE, // 设置既往史
  '14': SETPERSONALTEXTMODEVALUE, // 设置个人史
  '15': SETFAMILYTEXTMODEVALUE, // 设置家族史
  '16': SETMARRIAGETEXTMODEVALUE, // 设置婚育史
  '17': SETMENSTRUATIONTEXTMODEVALUE, // 设置月经史
};

const formatMode = mode => {
  switch (mode) {
    case '0':
      return 'patientia'; // 非空切非输入状态
    case '1':
      return 'chief'; // 主述
    case '2':
      return 'symptom'; // 现代史
    case '4':
      return 'vital'; // 现代史
    case '13':
      return 'other'; //其他史
    case '14':
      return 'other'; //其他史
    case '15':
      return 'other'; //其他史
    case '16':
      return 'other'; //其他史
    case '17':
      return 'other'; //其他史
    default:
      return 'null';
  }
};



function mapDispatchToProps(dispatch){
  return {
    handleInput(obj){   //自由模式值保存
      dispatch({
        type:actionsType[obj.boxMark],
        text:obj.text
      })
    },
    handlePush(obj={}){
      const {boxMark,isFocus,state} = obj;
      // console.log(boxMark, 'boxMark盒子标记');
      const notClear=state?isAllClear(getAllDataStringList(state)):false;
      // if(isFocus&&(boxMark==='1'||boxMark==='2')&&!notClear){
      //   // dispatch(embedPush({mode:+boxMark+1}));
      //   dispatch(embedPush({ mode: +boxMark + 1, action: formatMode(boxMark) }));
      //   return;
      // }
      // if (isFocus && !notClear) {
      if (isFocus) {
        // dispatch(embedPush({mode:+boxMark+1}));
        dispatch(embedPush({ mode: +boxMark + 1, action: formatMode(boxMark) }));
        return;
      }
      if(!isFocus&&didPushParamChange()) {    //输入的情况
        // dispatch(embedPush({mode:+boxMark+3}));
        dispatch(embedPush({ mode: +boxMark + 100, action: formatMode(boxMark) }));
      }
    }
  }
}

const BlockInpCont = connect(
  mapStateToProps,
  mapDispatchToProps
)(BlockInp);

export default BlockInpCont;