Home Reference Source

src/actions/columns.js

import {
  CHANGE_COLUMN_DISABLED,
  CHANGE_COLUMN_VISIBILITY,
  REGISTER_COLUMN,
  TOGGLE_COLUMN_VISIBILITY,
} from '../constants/columns';

import createActionHelper from './createActionHelper';
import { generateKey } from '../utils/id';

/**
 * Изменение видимсоти колонки таблицы
 * @param widgetId
 * @param columnId
 * @param visible
 */
export function changeColumnVisiblity(widgetId, columnId, visible) {
  return createActionHelper(CHANGE_COLUMN_VISIBILITY)({
    visible,
    key: widgetId,
    columnId,
  });
}

/**
 * Сделать колонку видимой
 * @param widgetId
 * @param columnId
 */
export function setColumnVisible(widgetId, columnId) {
  return changeColumnVisiblity(widgetId, columnId, true);
}

/**
 * Скрыть колонку
 * @param widgetId
 * @param columnId
 * @returns {*}
 */
export function setColumnHidden(widgetId, columnId) {
  return changeColumnVisiblity(widgetId, columnId, false);
}

/**
 * Поменять видимость колонки на противоположенную
 * @param widgetId
 * @param columnId
 * @returns {*}
 */
export function toggleColumnVisiblity(widgetId, columnId) {
  return createActionHelper(TOGGLE_COLUMN_VISIBILITY)({
    key: widgetId,
    columnId,
  });
}

export function changeColumnDisabled(widgetId, columnId, disabled) {
  return createActionHelper(CHANGE_COLUMN_DISABLED)({
    key: widgetId,
    columnId,
    disabled,
  });
}

/**
 * Зарегистрировать колонку в редаксе
 * @param widgetId
 * @param columnId
 * @param label
 * @param disabled
 * @param visible
 * @returns {*}
 */
export function registerColumn(widgetId, columnId, label, visible, disabled) {
  return createActionHelper(REGISTER_COLUMN)({
    key: widgetId,
    columnId,
    label,
    visible,
    disabled,
  });
}