tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

breakpoint-heading.js (2575B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */
      4 
      5 import { buildMenu, showMenu } from "../../context-menu/menu";
      6 
      7 import { getBreakpointsForSource } from "../../selectors/index";
      8 
      9 import {
     10  disableBreakpointsInSource,
     11  enableBreakpointsInSource,
     12  removeBreakpointsInSource,
     13 } from "../../actions/breakpoints/index";
     14 
     15 export function showBreakpointHeadingContextMenu(event, source) {
     16  return async ({ dispatch, getState }) => {
     17    const state = getState();
     18    const breakpointsForSource = getBreakpointsForSource(state, source);
     19 
     20    const enableInSourceLabel = L10N.getStr(
     21      "breakpointHeadingsMenuItem.enableInSource.label"
     22    );
     23    const disableInSourceLabel = L10N.getStr(
     24      "breakpointHeadingsMenuItem.disableInSource.label"
     25    );
     26    const removeInSourceLabel = L10N.getStr(
     27      "breakpointHeadingsMenuItem.removeInSource.label"
     28    );
     29    const enableInSourceKey = L10N.getStr(
     30      "breakpointHeadingsMenuItem.enableInSource.accesskey"
     31    );
     32    const disableInSourceKey = L10N.getStr(
     33      "breakpointHeadingsMenuItem.disableInSource.accesskey"
     34    );
     35    const removeInSourceKey = L10N.getStr(
     36      "breakpointHeadingsMenuItem.removeInSource.accesskey"
     37    );
     38 
     39    const disableInSourceItem = {
     40      id: "node-menu-disable-in-source",
     41      label: disableInSourceLabel,
     42      accesskey: disableInSourceKey,
     43      disabled: false,
     44      click: () => dispatch(disableBreakpointsInSource(source)),
     45    };
     46 
     47    const enableInSourceItem = {
     48      id: "node-menu-enable-in-source",
     49      label: enableInSourceLabel,
     50      accesskey: enableInSourceKey,
     51      disabled: false,
     52      click: () => dispatch(enableBreakpointsInSource(source)),
     53    };
     54 
     55    const removeInSourceItem = {
     56      id: "node-menu-enable-in-source",
     57      label: removeInSourceLabel,
     58      accesskey: removeInSourceKey,
     59      disabled: false,
     60      click: () => dispatch(removeBreakpointsInSource(source)),
     61    };
     62 
     63    const hideDisableInSourceItem = breakpointsForSource.every(
     64      breakpoint => breakpoint.disabled
     65    );
     66    const hideEnableInSourceItem = breakpointsForSource.every(
     67      breakpoint => !breakpoint.disabled
     68    );
     69 
     70    const items = [
     71      { item: disableInSourceItem, hidden: () => hideDisableInSourceItem },
     72      { item: enableInSourceItem, hidden: () => hideEnableInSourceItem },
     73      { item: removeInSourceItem, hidden: () => false },
     74    ];
     75 
     76    showMenu(event, buildMenu(items));
     77  };
     78 }