import { Reducer } from 'umi' ; import defaultSettings , { DefaultSettings } from '../../config/defaultSettings' ; export interface SettingModelType { namespace : 'settings' ; state : DefaultSettings ; reducers : { changeSetting : Reducer < DefaultSettings > ; } ; } const updateColorWeak = ( colorWeak ) => { const root = document . getElementById ( 'root' ) ; if ( root ) { root . className = colorWeak ? 'colorWeak' : '' ; } } ; const SettingModel = { namespace : 'settings' , state : defaultSettings , reducers : { changeSetting ( state = defaultSettings , { payload } ) { const { colorWeak , contentWidth } = payload ; if ( state . contentWidth !== contentWidth && window . dispatchEvent ) { window . dispatchEvent ( new Event ( 'resize' ) ) ; } updateColorWeak ( ! ! colorWeak ) ; return { ... state , ... payload , } ; } , } , } ; export default SettingModel ;