X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/540750a7749cb71ea0a8fde4b7a3689eeaa1c3dd..3d8c3da5fdc9488ac37d09211af8312e77ebebcb:/src/views/favorite-panel/favorite-panel.tsx diff --git a/src/views/favorite-panel/favorite-panel.tsx b/src/views/favorite-panel/favorite-panel.tsx index dfe107a8..9fbae5ce 100644 --- a/src/views/favorite-panel/favorite-panel.tsx +++ b/src/views/favorite-panel/favorite-panel.tsx @@ -8,21 +8,20 @@ import { DataExplorer } from "~/views-components/data-explorer/data-explorer"; import { DispatchProp, connect } from 'react-redux'; import { DataColumns } from '~/components/data-table/data-table'; import { RouteComponentProps } from 'react-router'; -import { RootState } from '~/store/store'; import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters'; import { ContainerRequestState } from '~/models/container-request'; import { SortDirection } from '~/components/data-table/data-column'; import { ResourceKind } from '~/models/resource'; import { resourceLabel } from '~/common/labels'; import { ArvadosTheme } from '~/common/custom-theme'; -import { FAVORITE_PANEL_ID, loadFavoritePanel } from "~/store/favorite-panel/favorite-panel-action"; +import { FAVORITE_PANEL_ID } from "~/store/favorite-panel/favorite-panel-action"; import { ResourceFileSize, ResourceLastModifiedDate, ProcessStatus, ResourceType, ResourceOwner, ResourceName } from '~/views-components/data-explorer/renderers'; import { FavoriteIcon } from '~/components/icon/icon'; import { Dispatch } from 'redux'; -import { contextMenuActions } from '~/store/context-menu/context-menu-actions'; +import { contextMenuActions, openContextMenu, resourceKindToContextMenuKind } from '~/store/context-menu/context-menu-actions'; import { ContextMenuKind } from '~/views-components/context-menu/context-menu'; import { loadDetailsPanel } from '../../store/details-panel/details-panel-action'; -import { navigateToResource } from '~/store/navigation/navigation-action'; +import { navigateTo } from '~/store/navigation/navigation-action'; type CssRules = "toolbar" | "button"; @@ -49,7 +48,7 @@ export interface FavoritePanelFilter extends DataTableFilterItem { type: ResourceKind | ContainerRequestState; } -export const columns: DataColumns = [ +export const favoritePanelColumns: DataColumns = [ { name: FavoritePanelColumnNames.NAME, selected: true, @@ -147,51 +146,39 @@ interface FavoritePanelActionProps { onContextMenu: (event: React.MouseEvent, item: string) => void; onDialogOpen: (ownerUuid: string) => void; onItemDoubleClick: (item: string) => void; - onMount: () => void; } const mapDispatchToProps = (dispatch: Dispatch): FavoritePanelActionProps => ({ onContextMenu: (event, resourceUuid) => { - event.preventDefault(); - dispatch( - contextMenuActions.OPEN_CONTEXT_MENU({ - position: { x: event.clientX, y: event.clientY }, - resource: { name: '', uuid: resourceUuid, kind: ContextMenuKind.RESOURCE } - }) - ); + const kind = resourceKindToContextMenuKind(resourceUuid); + if (kind) { + dispatch(openContextMenu(event, { name: '', uuid: resourceUuid, kind })); + } }, onDialogOpen: (ownerUuid: string) => { return; }, onItemClick: (resourceUuid: string) => { dispatch(loadDetailsPanel(resourceUuid)); }, onItemDoubleClick: uuid => { - dispatch(navigateToResource(uuid)); - }, - onMount: () => { - dispatch(loadFavoritePanel()); - }, + dispatch(navigateTo(uuid)); + } }); type FavoritePanelProps = FavoritePanelDataProps & FavoritePanelActionProps & DispatchProp & WithStyles & RouteComponentProps<{ id: string }>; export const FavoritePanel = withStyles(styles)( - connect((state: RootState) => ({ currentItemId: state.projects.currentItemId }), mapDispatchToProps)( + connect(undefined, mapDispatchToProps)( class extends React.Component { render() { return ; } - - componentDidMount() { - this.props.onMount(); - } } ) );