feat:
This commit is contained in:
@ -1,10 +1,13 @@
|
||||
import { RoleType, PageType } from '@/constants/app';
|
||||
import { LocationInfo } from '@/types/location';
|
||||
import { AppState } from '@/types/store';
|
||||
|
||||
import { CHANGE_ROLE_TYPE, CHANGE_HOME_PAGE, SET_LOCATION_INFO } from '../constants';
|
||||
import { CHANGE_ROLE_TYPE, CHANGE_HOME_PAGE, SET_LOCATION_INFO, SET_SERVICE_URLS } from '../constants';
|
||||
|
||||
export const changeRoleType = (value: RoleType) => ({ type: CHANGE_ROLE_TYPE, value });
|
||||
|
||||
export const changeHomePage = (value: PageType) => ({ type: CHANGE_HOME_PAGE, value });
|
||||
|
||||
export const setLocationInfo = (value: LocationInfo) => ({ type: SET_LOCATION_INFO, value });
|
||||
|
||||
export const setServiceUrls = (value: AppState['serviceUrls']) => ({ type: SET_SERVICE_URLS, value });
|
||||
|
||||
@ -6,3 +6,4 @@ export const SET_BIND_PHONE = 'SET_BIND_PHONE';
|
||||
export const SET_USER_MESSAGE = 'SET_USER_MESSAGE';
|
||||
export const SET_INVITE_CODE = 'SET_INVITE_CODE';
|
||||
export const SET_JOB_ID = 'SET_JOB_ID';
|
||||
export const SET_SERVICE_URLS = 'SET_SERVICE_URLS';
|
||||
|
||||
@ -7,7 +7,7 @@ import { CacheKey } from '@/constants/cache-key';
|
||||
import { LocationInfo } from '@/types/location';
|
||||
import { AppState } from '@/types/store';
|
||||
|
||||
import { CHANGE_ROLE_TYPE, CHANGE_HOME_PAGE, SET_LOCATION_INFO } from '../constants';
|
||||
import { CHANGE_ROLE_TYPE, CHANGE_HOME_PAGE, SET_LOCATION_INFO, SET_SERVICE_URLS } from '../constants';
|
||||
|
||||
const DEFAULT_LOCATION: LocationInfo = {
|
||||
provinceCode: '440000',
|
||||
@ -23,6 +23,7 @@ const INIT_STATE: AppState = {
|
||||
roleType: defaultAppMode,
|
||||
homePageType: defaultAppMode === RoleType.Company ? PageType.Anchor : PageType.JOB,
|
||||
location: Taro.getStorageSync<LocationInfo>(CacheKey.CACHE_LOCATION_INFO) || DEFAULT_LOCATION,
|
||||
serviceUrls: [],
|
||||
};
|
||||
|
||||
const appState = (state: AppState = INIT_STATE, action: Action): AppState => {
|
||||
@ -33,6 +34,8 @@ const appState = (state: AppState = INIT_STATE, action: Action): AppState => {
|
||||
return { ...state, roleType: value };
|
||||
case CHANGE_HOME_PAGE:
|
||||
return { ...state, homePageType: value };
|
||||
case SET_SERVICE_URLS:
|
||||
return { ...state, serviceUrls: value };
|
||||
case SET_LOCATION_INFO:
|
||||
Taro.setStorageSync(CacheKey.CACHE_LOCATION_INFO, value);
|
||||
return { ...state, location: value };
|
||||
|
||||
@ -5,3 +5,5 @@ export const selectRoleType = (state: IState) => state.appState.roleType;
|
||||
export const selectHomePageType = (state: IState) => state.appState.homePageType;
|
||||
|
||||
export const selectLocation = (state: IState) => state.appState.location;
|
||||
|
||||
export const selectServiceUrls = (state: IState) => state.appState.serviceUrls || {};
|
||||
|
||||
Reference in New Issue
Block a user