Home Reference Source

src/selectors/global.js

import { createSelector } from 'reselect';

/**
 * Селектор глоабльных настроек
 */
export const globalSelector = state => state.global || {};

/**
 * Селектор текущей локализации
 */
export const localeSelector = createSelector(
  globalSelector,
  global => global.locale
);

/**
 * Селектор состояния загрузки приложения
 */
export const appLoadingSelector = createSelector(
  globalSelector,
  global => global.loading
);

/**
 * Селектор конфига сообщений для локализации
 */
export const localizationSelector = createSelector(
  globalSelector,
  global => global.messages
);

/**
 * Селектор данных для навигационого меню (header, sidebar)
 */
export const menuSelector = createSelector(
  globalSelector,
  global => global.menu
);

/**
 * Селектор данных пользователя из конфига
 */
export const userSelector = createSelector(
  globalSelector,
  global => global.menu
);

/**
 * Селектор данных пользователя из конфига
 */
export const userConfigSelector = createSelector(
  globalSelector,
  global => global.user
);

/**
 * Селектор глобальной ошибки приложения
 */
export const errorSelector = createSelector(
  globalSelector,
  global => global.error
);

/**
 * Селектор текущей страницы
 */
export const rootPageSelector = createSelector(
  globalSelector,
  global => global.rootPageId
);

/**
 * Селектор роутинга
 */
export const routerSelector = state => state.router || {};

/**
 * Селектор location объекта
 */
export const getLocation = createSelector(
  routerSelector,
  router => router.location
);