From 4bb20738392ca822ff96490326c1658fdd76d8b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B8=85?= Date: Wed, 29 May 2019 18:15:37 +0800 Subject: [PATCH] fix code style --- scripts/insertCode.js | 2 +- .../GlobalHeader/AvatarDropdown.tsx | 9 ++++--- .../GlobalHeader/NoticeIconView.tsx | 18 ++++++++----- src/components/GlobalHeader/RightContent.tsx | 1 + src/layouts/BasicLayout.tsx | 21 ++++++++------- src/models/global.ts | 4 +-- src/models/login.ts | 11 +++----- src/models/setting.ts | 14 +++++----- src/models/user.ts | 27 +++++++++---------- src/pages/Authorized.tsx | 5 ++-- src/pages/Welcome.tsx | 4 +-- 11 files changed, 60 insertions(+), 56 deletions(-) diff --git a/scripts/insertCode.js b/scripts/insertCode.js index 1dc3d9ad..d631dfa1 100644 --- a/scripts/insertCode.js +++ b/scripts/insertCode.js @@ -33,7 +33,7 @@ const SettingCodeString = ` - dispatch!({ + dispatch({ type: 'settings/changeSetting', payload: config, }) diff --git a/src/components/GlobalHeader/AvatarDropdown.tsx b/src/components/GlobalHeader/AvatarDropdown.tsx index 4454ccac..5b135c6c 100644 --- a/src/components/GlobalHeader/AvatarDropdown.tsx +++ b/src/components/GlobalHeader/AvatarDropdown.tsx @@ -20,9 +20,12 @@ class AvatarDropdown extends React.Component { if (key === 'logout') { const { dispatch } = this.props; - dispatch!({ - type: 'login/logout', - }); + if (dispatch) { + dispatch({ + type: 'login/logout', + }); + } + return; } router.push(`/account/${key}`); diff --git a/src/components/GlobalHeader/NoticeIconView.tsx b/src/components/GlobalHeader/NoticeIconView.tsx index f79429aa..d79550b0 100644 --- a/src/components/GlobalHeader/NoticeIconView.tsx +++ b/src/components/GlobalHeader/NoticeIconView.tsx @@ -66,16 +66,20 @@ class GlobalHeaderRight extends Component { changeReadState = (clickedItem: NoticeItem) => { const { id } = clickedItem; const { dispatch } = this.props; - dispatch!({ - type: 'global/changeNoticeReadState', - payload: id, - }); + if (dispatch) { + dispatch({ + type: 'global/changeNoticeReadState', + payload: id, + }); + } }; componentDidMount() { const { dispatch } = this.props; - dispatch!({ - type: 'global/fetchNotices', - }); + if (dispatch) { + dispatch({ + type: 'global/fetchNotices', + }); + } } handleNoticeClear = (title: string, key: string) => { const { dispatch } = this.props; diff --git a/src/components/GlobalHeader/RightContent.tsx b/src/components/GlobalHeader/RightContent.tsx index 65fabe44..cf4f5bf6 100644 --- a/src/components/GlobalHeader/RightContent.tsx +++ b/src/components/GlobalHeader/RightContent.tsx @@ -7,6 +7,7 @@ import SelectLang from '../SelectLang'; import styles from './index.less'; import Avatar from './AvatarDropdown'; import { connect } from 'dva'; + export type SiderTheme = 'light' | 'dark'; export interface GlobalHeaderRightProps extends ConnectProps { theme?: SiderTheme; diff --git a/src/layouts/BasicLayout.tsx b/src/layouts/BasicLayout.tsx index a5ead002..33d94ff2 100644 --- a/src/layouts/BasicLayout.tsx +++ b/src/layouts/BasicLayout.tsx @@ -41,25 +41,28 @@ const menuDataRender = (menuList: MenuDataItem[]): MenuDataItem[] => { }; const BasicLayout: React.FC = props => { - const { dispatch, children, settings, location } = props; + const { dispatch, children, settings } = props; /** * constructor */ useState(() => { - dispatch!({ - type: 'user/fetchCurrent', - }); - dispatch!({ - type: 'settings/getSetting', - }); + if (dispatch) { + dispatch({ + type: 'user/fetchCurrent', + }); + dispatch({ + type: 'settings/getSetting', + }); + } }); + /** * init variables */ - const handleMenuCollapse = (payload: boolean) => - dispatch!({ + dispatch && + dispatch({ type: 'global/changeLayoutCollapsed', payload, }); diff --git a/src/models/global.ts b/src/models/global.ts index 5f1d2bd7..24a32d10 100644 --- a/src/models/global.ts +++ b/src/models/global.ts @@ -99,7 +99,7 @@ const GlobalModel: GlobalModelType = { }, reducers: { - changeLayoutCollapsed(state, { payload }) { + changeLayoutCollapsed(state = { notices: [], collapsed: true }, { payload }) { return { ...state, collapsed: payload, @@ -112,7 +112,7 @@ const GlobalModel: GlobalModelType = { notices: payload, }; }, - saveClearedNotices(state, { payload }) { + saveClearedNotices(state = { notices: [], collapsed: true }, { payload }) { return { collapsed: false, ...state, diff --git a/src/models/login.ts b/src/models/login.ts index e7cf877b..18dfb971 100644 --- a/src/models/login.ts +++ b/src/models/login.ts @@ -1,28 +1,25 @@ import { routerRedux } from 'dva/router'; -import { Reducer } from 'redux'; +import { Reducer, AnyAction } from 'redux'; import { EffectsCommandMap } from 'dva'; -import { AnyAction } from 'redux'; import { stringify, parse } from 'qs'; export function getPageQuery() { return parse(window.location.href.split('?')[1]); } -export interface IStateType {} - export type Effect = ( action: AnyAction, - effects: EffectsCommandMap & { select: (func: (state: IStateType) => T) => T }, + effects: EffectsCommandMap & { select: (func: (state: {}) => T) => T }, ) => void; export interface ModelType { namespace: string; - state: IStateType; + state: {}; effects: { logout: Effect; }; reducers: { - changeLoginStatus: Reducer; + changeLoginStatus: Reducer<{}>; }; } diff --git a/src/models/setting.ts b/src/models/setting.ts index b7f9068e..a5a278ae 100644 --- a/src/models/setting.ts +++ b/src/models/setting.ts @@ -6,8 +6,8 @@ export interface SettingModelType { namespace: 'settings'; state: DefaultSettings; reducers: { - getSetting: Reducer; - changeSetting: Reducer; + getSetting: Reducer; + changeSetting: Reducer; }; } let lessNodesAppended: boolean; @@ -72,7 +72,7 @@ const updateTheme: (primaryColor?: string) => void = primaryColor => { } }; -const updateColorWeak: (colorWeak: string) => void = colorWeak => { +const updateColorWeak: (colorWeak: boolean) => void = colorWeak => { const root = document.getElementById('root'); if (root) { root.className = colorWeak ? 'colorWeak' : ''; @@ -83,8 +83,8 @@ const SettingModel: SettingModelType = { namespace: 'settings', state: defaultSettings, reducers: { - getSetting(state) { - const setting: any = {}; + getSetting(state = defaultSettings) { + const setting: Partial = {}; const urlParams = new URL(window.location.href); Object.keys(state).forEach(key => { if (urlParams.searchParams.has(key)) { @@ -97,13 +97,13 @@ const SettingModel: SettingModelType = { if (state.primaryColor !== primaryColor) { updateTheme(primaryColor); } - updateColorWeak(colorWeak); + updateColorWeak(!!colorWeak); return { ...state, ...setting, }; }, - changeSetting(state, { payload }) { + changeSetting(state = defaultSettings, { payload }) { const urlParams = new URL(window.location.href); Object.keys(defaultSettings).forEach(key => { if (urlParams.searchParams.has(key)) { diff --git a/src/models/user.ts b/src/models/user.ts index 4bcdfba8..8f3b208a 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -9,13 +9,15 @@ export interface CurrentUser { group?: string; signature?: string; geographic?: any; - tags?: any[]; + tags?: { + key: string; + label: string; + }[]; unreadCount?: number; } export interface UserModelState { - list: any[]; - currentUser: CurrentUser; + currentUser?: CurrentUser; } export interface UserModelType { @@ -26,9 +28,8 @@ export interface UserModelType { fetchCurrent: Effect; }; reducers: { - save: Reducer; - saveCurrentUser: Reducer; - changeNotifyCount: Reducer; + saveCurrentUser: Reducer; + changeNotifyCount: Reducer; }; } @@ -36,7 +37,6 @@ const UserModel: UserModelType = { namespace: 'user', state: { - list: [], currentUser: {}, }, @@ -58,19 +58,18 @@ const UserModel: UserModelType = { }, reducers: { - save(state, action) { - return { - ...state, - list: action.payload, - }; - }, saveCurrentUser(state, action) { return { ...state, currentUser: action.payload || {}, }; }, - changeNotifyCount(state, action) { + changeNotifyCount( + state = { + currentUser: {}, + }, + action, + ) { return { ...state, currentUser: { diff --git a/src/pages/Authorized.tsx b/src/pages/Authorized.tsx index 561f0fde..6f502d36 100644 --- a/src/pages/Authorized.tsx +++ b/src/pages/Authorized.tsx @@ -1,6 +1,5 @@ import Authorized from '@/utils/Authorized'; -import { Route } from '@/models/connect'; -import { ConnectProps, ConnectState, UserModelState } from '@/models/connect'; +import { ConnectProps, ConnectState, UserModelState, Route } from '@/models/connect'; import { connect } from 'dva'; import pathToRegexp from 'path-to-regexp'; import React from 'react'; @@ -11,7 +10,7 @@ interface AuthComponentProps extends ConnectProps { } const getRouteAuthority = (path: string, routeData: Route[]) => { - let authorities: string[] | string | undefined = void 0; + let authorities: string[] | string | undefined = undefined; routeData.forEach(route => { // match prefix if (pathToRegexp(`${route.path}(.*)`).test(path)) { diff --git a/src/pages/Welcome.tsx b/src/pages/Welcome.tsx index c9787fa2..1f78bed0 100644 --- a/src/pages/Welcome.tsx +++ b/src/pages/Welcome.tsx @@ -1,6 +1,6 @@ import React from 'react'; -const Welcome = () => ( +export default () => (

想要添加更多页面?请参考{' '} @@ -9,5 +9,3 @@ const Welcome = () => ( 。

); -Welcome.title = '欢迎使用'; -export default Welcome; -- GitLab