1 | import { METHODS } from './router';
|
2 |
|
3 | export const SET_PAGE = 'PLATFORM__SET_PAGE';
|
4 | export const SET_STATUS = 'PLATFORM__SET_STATUS';
|
5 | export const GOTO_PAGE_INDEX = 'PLATFORM__GOTO_PAGE_INDEX';
|
6 | export const NAVIGATE_TO_URL = 'PLATFORM__NAVIGATE_TO_URL';
|
7 | export const SET_SHELL = 'PLATFORM__SET_SHELL';
|
8 | export const REDIRECT = 'PLATFORM__REDIRECT';
|
9 | export const REROUTE_PAGE = 'PLATFORM__REROUTE_PAGE';
|
10 |
|
11 | export const setPage = (url, { urlParams={}, queryParams={}, hashParams={}, referrer='' }={}) => ({
|
12 | type: SET_PAGE,
|
13 | payload: { url, urlParams, queryParams, hashParams, referrer },
|
14 | });
|
15 |
|
16 | export const gotoPageIndex = (
|
17 | pageIndex,
|
18 | pathName,
|
19 | {
|
20 | queryParams={},
|
21 | hashParams={},
|
22 | referrer='',
|
23 | }={}
|
24 | ) => ({
|
25 | type: GOTO_PAGE_INDEX,
|
26 | payload: { pageIndex, pathName, queryParams, hashParams, referrer },
|
27 | });
|
28 |
|
29 | export const navigateToUrl = (
|
30 | method,
|
31 | pathName,
|
32 | {
|
33 | queryParams={},
|
34 | hashParams={},
|
35 | bodyParams={},
|
36 | referrer='',
|
37 | }={}
|
38 | ) => ({
|
39 | type: NAVIGATE_TO_URL,
|
40 | payload: { method, pathName, queryParams, hashParams, bodyParams, referrer },
|
41 | });
|
42 |
|
43 | export const setShell = shell => ({ type: SET_SHELL, shell });
|
44 |
|
45 | export const redirect = url => ({ type: REDIRECT, url });
|
46 |
|
47 | export const reroutePage = () => async (dispatch, getState) => {
|
48 | const { currentPage } = getState().platform;
|
49 |
|
50 | dispatch(navigateToUrl(
|
51 | METHODS.GET,
|
52 | currentPage.url,
|
53 | {
|
54 | queryParams: currentPage.queryParams,
|
55 | hashParams: currentPage.hashParams,
|
56 | bodyParams: {},
|
57 | referrer: currentPage.referrer,
|
58 | }
|
59 | ));
|
60 | };
|
61 |
|
62 | export const activateClient = () => async (dispatch, getState) => {
|
63 | const { platform } = getState();
|
64 | if (!platform.shell) { return; }
|
65 |
|
66 | dispatch(setShell(false));
|
67 | dispatch(reroutePage());
|
68 | };
|
69 |
|
70 | export const setStatus = status => ({
|
71 | type: SET_STATUS,
|
72 | payload: { status },
|
73 | });
|
74 |
|
75 | export default {
|
76 | SET_PAGE,
|
77 | SET_STATUS,
|
78 | GOTO_PAGE_INDEX,
|
79 | NAVIGATE_TO_URL,
|
80 | SET_SHELL,
|
81 | REROUTE_PAGE,
|
82 | setPage,
|
83 | setStatus,
|
84 | gotoPageIndex,
|
85 | navigateToUrl,
|
86 | setShell,
|
87 | reroutePage,
|
88 | };
|