</SvgIcon>
)
+//https://pictogrammers.com/library/memory/icon/box-light-vertical/
+export const VerticalLineDivider: IconType = (props: any) => (
+ <SvgIcon {...props}>
+ <path d="M12 0V22H10V0H12Z" />
+ </SvgIcon>
+)
+
export type IconType = React.SFC<{ className?: string; style?: object }>;
export const AddIcon: IconType = props => <Add {...props} />;
import { PublicFavoritesState } from "store/public-favorites/public-favorites-reducer";
import { isExactlyOneSelected } from "store/multiselect/multiselect-actions";
import { IntersectionObserverWrapper } from "./ms-toolbar-overflow-wrapper";
-import { ContextMenuKind, sortMenuItems } from 'views-components/context-menu/menu-item-sort';
+import { ContextMenuKind, sortMenuItems, menuDirection } from 'views-components/context-menu/menu-item-sort';
import { sortByProperty } from "common/array-utils";
const WIDTH_TRANSITION = 150
singleSelectedUuid === null ? action.isForMulti : true
);
- const actions =
- singleResourceKind && singleResourceKind.length ? sortMenuItems(singleResourceKind[0] as ContextMenuKind, rawActions) : rawActions.sort(sortByProperty('name'));
+ const actions: ContextMenuAction[] | MultiSelectMenuAction[] =
+ singleResourceKind && singleResourceKind.length ? sortMenuItems(singleResourceKind[0] as ContextMenuKind, rawActions, menuDirection.HORIZONTAL) : rawActions.sort(sortByProperty('name'));
return (
<React.Fragment>
import { ContextMenuAction } from '../context-menu-action-set';
import { Divider as DividerComponent, StyleRulesCallback, withStyles } from '@material-ui/core';
import { WithStyles } from '@material-ui/core/styles';
+import { VerticalLineDivider } from 'components/icon/icon';
-type CssRules = 'root';
+type CssRules = 'horizontal' | 'vertical';
const styles:StyleRulesCallback<CssRules> = () => ({
- root: {
+ horizontal: {
backgroundColor: 'black',
},
+ vertical: {
+ backgroundColor: 'black',
+ transform: 'rotate(90deg)',
+ },
});
-type DividerProps = {
- orthogonality: 'vertical' | 'horizontal';
-};
+export const VerticalLine = withStyles(styles)((props: WithStyles<CssRules>) => {
+ return <DividerComponent variant='middle' className={props.classes.vertical}/>;
+});
-export const Divider = withStyles(styles)((props: DividerProps & WithStyles<CssRules>) => {
- return <DividerComponent variant='middle' className={props.classes.root} />;
+export const HorizontalLine = withStyles(styles)((props: WithStyles<CssRules>) => {
+ return <DividerComponent variant='middle' className={props.classes.horizontal} />;
});
-export const menuDivider: ContextMenuAction = {
+//msToolbar only renders icon and not component
+export const horizontalMenuDivider: ContextMenuAction = {
+ name: 'divider',
+ icon: VerticalLineDivider,
+ component: VerticalLine,
+ execute: () => null,
+};
+
+export const verticalMenuDivider: ContextMenuAction = {
name: 'divider',
- component: Divider,
+ icon: () => null,
+ component: HorizontalLine,
execute: () => null,
};
\ No newline at end of file
import { ContextMenuActionSet, ContextMenuAction } from "./context-menu-action-set";
import { Dispatch } from "redux";
import { memoize } from "lodash";
-import { sortMenuItems, ContextMenuKind } from "./menu-item-sort";
+import { sortMenuItems, ContextMenuKind, menuDirection } from "./menu-item-sort";
type DataProps = Pick<ContextMenuProps, "anchorEl" | "items" | "open"> & { resource?: ContextMenuResource };
const menuActionSets = new Map<string, ContextMenuActionSet>();
export const addMenuActionSet = (name: ContextMenuKind, itemSet: ContextMenuActionSet) => {
- const sorted = itemSet.map(items => sortMenuItems(name, items));
+ const sorted = itemSet.map(items => sortMenuItems(name, items, menuDirection.VERTICAL));
menuActionSets.set(name, sorted);
};
import { ContextMenuAction } from './context-menu-action-set';
import { ContextMenuActionNames } from 'views-components/context-menu/context-menu-action-set';
import { sortByProperty } from 'common/array-utils';
-import { menuDivider } from './actions/context-menu-divider';
+import { horizontalMenuDivider, verticalMenuDivider } from './actions/context-menu-divider';
export enum ContextMenuKind {
API_CLIENT_AUTHORIZATION = "ApiClientAuthorization",
ContextMenuActionNames.COPY_AND_RERUN_PROCESS,
ContextMenuActionNames.MOVE_TO,
ContextMenuActionNames.REMOVE,
+ ContextMenuActionNames.DIVIDER,
ContextMenuActionNames.ADD_TO_FAVORITES,
ContextMenuActionNames.ADD_TO_PUBLIC_FAVORITES,
];
[ContextMenuKind.READONLY_WORKFLOW]: workflowOrder,
};
-export const sortMenuItems = (menuKind: ContextMenuKind, menuItems: ContextMenuAction[]) => {
+export const menuDirection = {
+ VERTICAL: 'vertical',
+ HORIZONTAL: 'horizontal'
+}
+
+export const sortMenuItems = (menuKind: ContextMenuKind, menuItems: ContextMenuAction[], orthagonality: string) => {
const preferredOrder = kindToOrder[menuKind];
//if no specified order, sort by name
preferredOrder.forEach((name) => {
if (name === ContextMenuActionNames.DIVIDER) {
count++;
- bucketMap.set(`${name}-${count}`, menuDivider)
+ bucketMap.set(`${name}-${count}`, orthagonality === menuDirection.VERTICAL ? verticalMenuDivider : horizontalMenuDivider)
} else {
bucketMap.set(name, null)
}