UNPKG

ttk-app-core

Version:
57 lines (47 loc) 1.67 kB
import { Map, fromJS, toJS } from 'immutable' import { reducer as MetaReducer } from 'edf-meta-engine' import { getInitState } from './data' import moment from 'moment' import config from './config' class reducer { constructor(option) { this.metaReducer = option.metaReducer this.config = config.current } init = (state, option) => { const initState = getInitState() return this.metaReducer.init(state, initState) } updateArr = (state, arr) => { arr.forEach(item => { if(item.value){ state = this.metaReducer.sf(state, item.path, fromJS(item.value)) } }) return state } settingOptionsUpdate = (state, {visible, data}) => { state = this.metaReducer.sf(state, 'data.other.columnDto', fromJS(data)) state = this.metaReducer.sf(state, 'data.showTableSetting', visible) return state } update = (state, { path, value }) => { return this.metaReducer.sf(state, path, fromJS(value)) } tableSettingVisible = (state, { value, data }) => { state = this.metaReducer.sf(state, 'data.showTableSetting', value) data = this.metaReducer.gf(state, 'data.other.columnDto') return state } onColumnResizeEnd = (state, res) => { if(res[0]){ state = this.metaReducer.sf(state, 'data.other.columnDto', fromJS(res[0].columnDetails)) } return state } } export default function creator(option) { const metaReducer = new MetaReducer(option), o = new reducer({ ...option, metaReducer }) return { ...metaReducer, ...o } }