Source code

Revision control

Copy as Markdown

Other Tools

/* 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 { buildMenu, showMenu } from "../../context-menu/menu";
import { getBreakpointsForSource } from "../../selectors/index";
import {
disableBreakpointsInSource,
enableBreakpointsInSource,
removeBreakpointsInSource,
} from "../../actions/breakpoints/index";
export function showBreakpointHeadingContextMenu(event, source) {
return async ({ dispatch, getState }) => {
const state = getState();
const breakpointsForSource = getBreakpointsForSource(state, source);
const enableInSourceLabel = L10N.getStr(
"breakpointHeadingsMenuItem.enableInSource.label"
);
const disableInSourceLabel = L10N.getStr(
"breakpointHeadingsMenuItem.disableInSource.label"
);
const removeInSourceLabel = L10N.getStr(
"breakpointHeadingsMenuItem.removeInSource.label"
);
const enableInSourceKey = L10N.getStr(
"breakpointHeadingsMenuItem.enableInSource.accesskey"
);
const disableInSourceKey = L10N.getStr(
"breakpointHeadingsMenuItem.disableInSource.accesskey"
);
const removeInSourceKey = L10N.getStr(
"breakpointHeadingsMenuItem.removeInSource.accesskey"
);
const disableInSourceItem = {
id: "node-menu-disable-in-source",
label: disableInSourceLabel,
accesskey: disableInSourceKey,
disabled: false,
click: () => dispatch(disableBreakpointsInSource(source)),
};
const enableInSourceItem = {
id: "node-menu-enable-in-source",
label: enableInSourceLabel,
accesskey: enableInSourceKey,
disabled: false,
click: () => dispatch(enableBreakpointsInSource(source)),
};
const removeInSourceItem = {
id: "node-menu-enable-in-source",
label: removeInSourceLabel,
accesskey: removeInSourceKey,
disabled: false,
click: () => dispatch(removeBreakpointsInSource(source)),
};
const hideDisableInSourceItem = breakpointsForSource.every(
breakpoint => breakpoint.disabled
);
const hideEnableInSourceItem = breakpointsForSource.every(
breakpoint => !breakpoint.disabled
);
const items = [
{ item: disableInSourceItem, hidden: () => hideDisableInSourceItem },
{ item: enableInSourceItem, hidden: () => hideEnableInSourceItem },
{ item: removeInSourceItem, hidden: () => false },
];
showMenu(event, buildMenu(items));
};
}