47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { createSelector } from "reselect";
|
|
import { AppState } from "reducers";
|
|
import { AppViewReduxState } from "reducers/uiReducers/appViewReducer";
|
|
import { PageListReduxState } from "reducers/entityReducers/pageListReducer";
|
|
import { BUILDER_PAGE_URL } from "constants/routes";
|
|
|
|
const getAppViewState = (state: AppState) => state.ui.appView;
|
|
const getPageListState = (state: AppState): PageListReduxState =>
|
|
state.entities.pageList;
|
|
|
|
// For the viewer, this does not need to be wrapped in createCachedSelector, as it will not change in subsequent renders.
|
|
// export const getCurrentPageLayoutDSL = createSelector(
|
|
// getAppViewState,
|
|
// getDataTree,
|
|
// (view: AppViewReduxState, dataTree: DataTree) =>
|
|
// injectDataTreeIntoDsl(dataTree, view.dsl),
|
|
// );
|
|
|
|
export const getPageList = createSelector(
|
|
getPageListState,
|
|
(pageList: PageListReduxState) =>
|
|
pageList.pages.length > 0 ? pageList.pages : undefined,
|
|
);
|
|
|
|
export const getIsFetchingPage = createSelector(
|
|
getAppViewState,
|
|
(view: AppViewReduxState) => view.isFetchingPage,
|
|
);
|
|
|
|
export const getIsInitialized = createSelector(
|
|
getAppViewState,
|
|
(view: AppViewReduxState) => view.initialized,
|
|
);
|
|
|
|
export const getCurrentDSLPageId = createSelector(
|
|
getPageListState,
|
|
(pageList: PageListReduxState) => pageList.currentPageId,
|
|
);
|
|
|
|
export const getEditorURL = createSelector(
|
|
getPageListState,
|
|
(pageList: PageListReduxState) =>
|
|
pageList.applicationId && pageList.currentPageId
|
|
? BUILDER_PAGE_URL(pageList.applicationId, pageList.currentPageId)
|
|
: "",
|
|
);
|