forked from mirrors/gecko-dev
		
	Differential Revision: https://phabricator.services.mozilla.com/D37217 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 | 
						|
 * You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
import { actionCreators as ac, actionTypes as at } from "common/Actions.jsm";
 | 
						|
 | 
						|
/**
 | 
						|
 * List of functions that return items that can be included as menu options in a
 | 
						|
 * SectionMenu. All functions take the section as the only parameter.
 | 
						|
 */
 | 
						|
export const SectionMenuOptions = {
 | 
						|
  Separator: () => ({ type: "separator" }),
 | 
						|
  MoveUp: section => ({
 | 
						|
    id: "newtab-section-menu-move-up",
 | 
						|
    icon: "arrowhead-up",
 | 
						|
    action: ac.OnlyToMain({
 | 
						|
      type: at.SECTION_MOVE,
 | 
						|
      data: { id: section.id, direction: -1 },
 | 
						|
    }),
 | 
						|
    userEvent: "MENU_MOVE_UP",
 | 
						|
    disabled: !!section.isFirst,
 | 
						|
  }),
 | 
						|
  MoveDown: section => ({
 | 
						|
    id: "newtab-section-menu-move-down",
 | 
						|
    icon: "arrowhead-down",
 | 
						|
    action: ac.OnlyToMain({
 | 
						|
      type: at.SECTION_MOVE,
 | 
						|
      data: { id: section.id, direction: +1 },
 | 
						|
    }),
 | 
						|
    userEvent: "MENU_MOVE_DOWN",
 | 
						|
    disabled: !!section.isLast,
 | 
						|
  }),
 | 
						|
  RemoveSection: section => ({
 | 
						|
    id: "newtab-section-menu-remove-section",
 | 
						|
    icon: "dismiss",
 | 
						|
    action: ac.SetPref(section.showPrefName, false),
 | 
						|
    userEvent: "MENU_REMOVE",
 | 
						|
  }),
 | 
						|
  CollapseSection: section => ({
 | 
						|
    id: "newtab-section-menu-collapse-section",
 | 
						|
    icon: "minimize",
 | 
						|
    action: ac.OnlyToMain({
 | 
						|
      type: at.UPDATE_SECTION_PREFS,
 | 
						|
      data: { id: section.id, value: { collapsed: true } },
 | 
						|
    }),
 | 
						|
    userEvent: "MENU_COLLAPSE",
 | 
						|
  }),
 | 
						|
  ExpandSection: section => ({
 | 
						|
    id: "newtab-section-menu-expand-section",
 | 
						|
    icon: "maximize",
 | 
						|
    action: ac.OnlyToMain({
 | 
						|
      type: at.UPDATE_SECTION_PREFS,
 | 
						|
      data: { id: section.id, value: { collapsed: false } },
 | 
						|
    }),
 | 
						|
    userEvent: "MENU_EXPAND",
 | 
						|
  }),
 | 
						|
  ManageSection: section => ({
 | 
						|
    id: "newtab-section-menu-manage-section",
 | 
						|
    icon: "settings",
 | 
						|
    action: ac.OnlyToMain({ type: at.SETTINGS_OPEN }),
 | 
						|
    userEvent: "MENU_MANAGE",
 | 
						|
  }),
 | 
						|
  ManageWebExtension: section => ({
 | 
						|
    id: "newtab-section-menu-manage-webext",
 | 
						|
    icon: "settings",
 | 
						|
    action: ac.OnlyToMain({ type: at.OPEN_WEBEXT_SETTINGS, data: section.id }),
 | 
						|
  }),
 | 
						|
  AddTopSite: section => ({
 | 
						|
    id: "newtab-section-menu-add-topsite",
 | 
						|
    icon: "add",
 | 
						|
    action: { type: at.TOP_SITES_EDIT, data: { index: -1 } },
 | 
						|
    userEvent: "MENU_ADD_TOPSITE",
 | 
						|
  }),
 | 
						|
  AddSearchShortcut: section => ({
 | 
						|
    id: "newtab-section-menu-add-search-engine",
 | 
						|
    icon: "search",
 | 
						|
    action: { type: at.TOP_SITES_OPEN_SEARCH_SHORTCUTS_MODAL },
 | 
						|
    userEvent: "MENU_ADD_SEARCH",
 | 
						|
  }),
 | 
						|
  PrivacyNotice: section => ({
 | 
						|
    id: "newtab-section-menu-privacy-notice",
 | 
						|
    icon: "info",
 | 
						|
    action: ac.OnlyToMain({
 | 
						|
      type: at.OPEN_LINK,
 | 
						|
      data: { url: section.privacyNoticeURL },
 | 
						|
    }),
 | 
						|
    userEvent: "MENU_PRIVACY_NOTICE",
 | 
						|
  }),
 | 
						|
  CheckCollapsed: section =>
 | 
						|
    section.collapsed
 | 
						|
      ? SectionMenuOptions.ExpandSection(section)
 | 
						|
      : SectionMenuOptions.CollapseSection(section),
 | 
						|
};
 |