import store from '../store';

export const FEED_WIDGET_CHANGE_FILTERS = 'FEED_WIDGET_CHANGE_FILTERS';
export const FEED_POPOUT_CHANGE_FILTERS = 'FEED_POPOUT_CHANGE_FILTERS';
export function changeFilter(widgetId, filters, isPopout = false) {
  const type = isPopout ? FEED_POPOUT_CHANGE_FILTERS : FEED_WIDGET_CHANGE_FILTERS;
  store.dispatch({
    type,
    widgetId,
    filters
  });
  bzTrack.track('Feed: Changed Filter', {filters});
}

export const FEED_WIDGET_CHANGE_THEME_COLOR = 'FEED_WIDGET_CHANGE_THEME_COLOR';
export const FEED_POPOUT_CHANGE_THEME_COLOR = 'FEED_POPOUT_CHANGE_THEME_COLOR';
export function changeThemeColor(widgetId, themeId, hue, isPopout = false) {
  const type = isPopout ? FEED_POPOUT_CHANGE_THEME_COLOR : FEED_WIDGET_CHANGE_THEME_COLOR;
  store.dispatch({
    type,
    widgetId,
    themeId,
    hue
  });
  bzTrack.track('Feed: Changed Theme Color', {hue});
}

export const FEED_WIDGET_CHANGE_THEME_TARGET = 'FEED_WIDGET_CHANGE_THEME_TARGET';
export const FEED_POPOUT_CHANGE_THEME_TARGET = 'FEED_POPOUT_CHANGE_THEME_TARGET';
export function changeThemeTarget(widgetId, themeId, target, category, isPopout = false) {
  const type = isPopout ? FEED_POPOUT_CHANGE_THEME_TARGET : FEED_WIDGET_CHANGE_THEME_TARGET;
  store.dispatch({
    type,
    widgetId,
    themeId,
    target,
    category
  });
  bzTrack.track('Feed: Changed Theme Target', {target, category});
}

export const FEED_WIDGET_ADD_THEME = 'FEED_WIDGET_ADD_THEME';
export const FEED_POPOUT_ADD_THEME = 'FEED_POPOUT_ADD_THEME';
export function addTheme(widgetId, isPopout = false) {
  const type = isPopout ? FEED_POPOUT_ADD_THEME : FEED_WIDGET_ADD_THEME;
  store.dispatch({
    type,
    widgetId
  });
  bzTrack.track('Feed: Added Theme');
}

export const FEED_WIDGET_REMOVE_THEME = 'FEED_WIDGET_REMOVE_THEME';
export const FEED_POPOUT_REMOVE_THEME = 'FEED_POPOUT_REMOVE_THEME';
export function removeTheme(widgetId, themeId, isPopout = false) {
  const type = isPopout ? FEED_POPOUT_REMOVE_THEME : FEED_WIDGET_REMOVE_THEME;
  store.dispatch({
    type,
    widgetId,
    themeId
  });
  bzTrack.track('Feed: Removed Theme');
}

export const FEED_WIDGET_CHANGE_TEXT = 'FEED_WIDGET_CHANGE_TEXT';
export const FEED_POPOUT_CHANGE_TEXT = 'FEED_POPOUT_CHANGE_TEXT';
export function changeTextSize(widgetId, textSize, isPopout = false) {
  const type = isPopout ? FEED_POPOUT_CHANGE_TEXT : FEED_WIDGET_CHANGE_TEXT;
  store.dispatch({
    type,
    widgetId,
    textSize
  });
  bzTrack.track('Feed: Chaged Text Size', {textSize});
}

export const FEED_WIDGET_CHANGE_SPACING = 'FEED_WIDGET_CHANGE_SPACING';
export const FEED_POPOUT_CHANGE_SPACING = 'FEED_POPOUT_CHANGE_SPACING';
export function changeHeaderSpacing(widgetId, headerSpacing, isPopout = false) {
  const type = isPopout ? FEED_POPOUT_CHANGE_SPACING : FEED_WIDGET_CHANGE_SPACING;
  store.dispatch({
    type,
    widgetId,
    headerSpacing
  });
  bzTrack.track('Feed: Changed Spacing', {headerSpacing});
}

