From: Pawel Kowalczyk Date: Mon, 3 Dec 2018 12:01:15 +0000 (+0100) Subject: cr changes X-Git-Tag: 1.4.0~97^2~3 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/60e8ad5f90108900b4c189f88fbe483e7010432e cr changes Feature #14498 Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk --- diff --git a/src/store/advanced-tab/advanced-tab.ts b/src/store/advanced-tab/advanced-tab.ts index 2b7e883d..fd68eb4b 100644 --- a/src/store/advanced-tab/advanced-tab.ts +++ b/src/store/advanced-tab/advanced-tab.ts @@ -17,13 +17,16 @@ import { FilterBuilder } from '~/services/api/filter-builder'; import { RepositoryResource } from '~/models/repositories'; import { SshKeyResource } from '~/models/ssh-key'; import { VirtualMachinesResource } from '~/models/virtual-machines'; +import { UserResource } from '~/models/user'; +import { ListResults } from '~/services/common-service/common-resource-service'; +import { LinkResource } from '~/models/link'; export const ADVANCED_TAB_DIALOG = 'advancedTabDialog'; interface AdvancedTabDialogData { apiResponse: any; - metadata: any; - user: string; + metadata: ListResults | string; + user: UserResource | string; pythonHeader: string; pythonExample: string; cliGetHeader: string; @@ -64,41 +67,107 @@ enum VirtualMachineData { CREATED_AT = 'created_at' } +enum ResourcePrefix { + REPOSITORIES = 'repositories', + AUTORIZED_KEYS = 'authorized_keys', + VIRTUAL_MACHINES = 'virtual_machines' +} + type AdvanceResourceKind = CollectionData | ProcessData | ProjectData | RepositoryData | SshKeyData | VirtualMachineData; -type AdvanceResourcePrefix = GroupContentsResourcePrefix | 'repositories' | 'authorized_keys' | 'virtual_machines'; +type AdvanceResourcePrefix = GroupContentsResourcePrefix | ResourcePrefix; -export const openAdvancedTabDialog = (uuid: string, index?: number) => +export const openAdvancedTabDialog = (uuid: string) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const kind = extractUuidKind(uuid); switch (kind) { case ResourceKind.COLLECTION: const { data: dataCollection, metadata: metaCollection, user: userCollection } = await dispatch(getDataForAdvancedTab(uuid)); - const advanceDataCollection: AdvancedTabDialogData = advancedTabData(uuid, metaCollection, userCollection, collectionApiResponse, dataCollection, CollectionData.COLLECTION, GroupContentsResourcePrefix.COLLECTION, CollectionData.STORAGE_CLASSES_CONFIRMED, dataCollection.storageClassesConfirmed); + const advanceDataCollection: AdvancedTabDialogData = advancedTabData({ + uuid, + metadata: metaCollection, + user: userCollection, + apiResponseKind: collectionApiResponse, + data: dataCollection, + resourceKind: CollectionData.COLLECTION, + resourcePrefix: GroupContentsResourcePrefix.COLLECTION, + resourceKindProperty: CollectionData.STORAGE_CLASSES_CONFIRMED, + property: dataCollection.storageClassesConfirmed + }); dispatch(initAdvancedTabDialog(advanceDataCollection)); break; case ResourceKind.PROCESS: const { data: dataProcess, metadata: metaProcess, user: userProcess } = await dispatch(getDataForAdvancedTab(uuid)); - const advancedDataProcess: AdvancedTabDialogData = advancedTabData(uuid, metaProcess, userProcess, containerRequestApiResponse, dataProcess, ProcessData.CONTAINER_REQUEST, GroupContentsResourcePrefix.PROCESS, ProcessData.OUTPUT_NAME, dataProcess.outputName); + const advancedDataProcess: AdvancedTabDialogData = advancedTabData({ + uuid, + metadata: metaProcess, + user: userProcess, + apiResponseKind: containerRequestApiResponse, + data: dataProcess, + resourceKind: ProcessData.CONTAINER_REQUEST, + resourcePrefix: GroupContentsResourcePrefix.PROCESS, + resourceKindProperty: ProcessData.OUTPUT_NAME, + property: dataProcess.outputName + }); dispatch(initAdvancedTabDialog(advancedDataProcess)); break; case ResourceKind.PROJECT: const { data: dataProject, metadata: metaProject, user: userProject } = await dispatch(getDataForAdvancedTab(uuid)); - const advanceDataProject: AdvancedTabDialogData = advancedTabData(uuid, metaProject, userProject, groupRequestApiResponse, dataProject, ProjectData.GROUP, GroupContentsResourcePrefix.PROJECT, ProjectData.DELETE_AT, dataProject.deleteAt); + const advanceDataProject: AdvancedTabDialogData = advancedTabData({ + uuid, + metadata: metaProject, + user: userProject, + apiResponseKind: groupRequestApiResponse, + data: dataProject, + resourceKind: ProjectData.GROUP, + resourcePrefix: GroupContentsResourcePrefix.PROJECT, + resourceKindProperty: ProjectData.DELETE_AT, + property: dataProject.deleteAt + }); dispatch(initAdvancedTabDialog(advanceDataProject)); break; case ResourceKind.REPOSITORY: - const dataRepository = getState().repositories.items[index!]; - const advanceDataRepository: AdvancedTabDialogData = advancedTabData(uuid, '', '', repositoryApiResponse, dataRepository, RepositoryData.REPOSITORY, 'repositories', RepositoryData.CREATED_AT, dataRepository.createdAt); + const dataRepository = getState().repositories.items.find(it => it.uuid === uuid); + const advanceDataRepository: AdvancedTabDialogData = advancedTabData({ + uuid, + metadata: '', + user: '', + apiResponseKind: repositoryApiResponse, + data: dataRepository, + resourceKind: RepositoryData.REPOSITORY, + resourcePrefix: ResourcePrefix.REPOSITORIES, + resourceKindProperty: RepositoryData.CREATED_AT, + property: dataRepository!.createdAt + }); dispatch(initAdvancedTabDialog(advanceDataRepository)); break; case ResourceKind.SSH_KEY: - const dataSshKey = getState().auth.sshKeys[index!]; - const advanceDataSshKey: AdvancedTabDialogData = advancedTabData(uuid, '', '', sshKeyApiResponse, dataSshKey, SshKeyData.SSH_KEY, 'authorized_keys', SshKeyData.CREATED_AT, dataSshKey.createdAt); + const dataSshKey = getState().auth.sshKeys.find(it => it.uuid === uuid); + const advanceDataSshKey: AdvancedTabDialogData = advancedTabData({ + uuid, + metadata: '', + user: '', + apiResponseKind: sshKeyApiResponse, + data: dataSshKey, + resourceKind: SshKeyData.SSH_KEY, + resourcePrefix: ResourcePrefix.AUTORIZED_KEYS, + resourceKindProperty: SshKeyData.CREATED_AT, + property: dataSshKey!.createdAt + }); dispatch(initAdvancedTabDialog(advanceDataSshKey)); break; case ResourceKind.VIRTUAL_MACHINE: - const dataVirtualMachine = getState().virtualMachines.virtualMachines.items[index!]; - const advanceDataVirtualMachine: AdvancedTabDialogData = advancedTabData(uuid, '', '', virtualMachineApiResponse, dataVirtualMachine, VirtualMachineData.VIRTUAL_MACHINE, 'virtual_machines', VirtualMachineData.CREATED_AT, dataVirtualMachine.createdAt); + const dataVirtualMachine = getState().virtualMachines.virtualMachines.items.find(it => it.uuid === uuid); + const advanceDataVirtualMachine: AdvancedTabDialogData = advancedTabData({ + uuid, + metadata: '', + user: '', + apiResponseKind: virtualMachineApiResponse, + data: dataVirtualMachine, + resourceKind: VirtualMachineData.VIRTUAL_MACHINE, + resourcePrefix: ResourcePrefix.VIRTUAL_MACHINES, + resourceKindProperty: VirtualMachineData.CREATED_AT, + property: dataVirtualMachine.createdAt + }); dispatch(initAdvancedTabDialog(advanceDataVirtualMachine)); break; default: @@ -121,21 +190,23 @@ const getDataForAdvancedTab = (uuid: string) => const initAdvancedTabDialog = (data: AdvancedTabDialogData) => dialogActions.OPEN_DIALOG({ id: ADVANCED_TAB_DIALOG, data }); -const advancedTabData = (uuid: string, metadata: any, user: any, apiResponseKind: any, data: any, resourceKind: AdvanceResourceKind, - resourcePrefix: AdvanceResourcePrefix, resourceKindProperty: AdvanceResourceKind, property: any) => { +const advancedTabData = (args: { + uuid: string, metadata: ListResults | string, user: UserResource | string, apiResponseKind: any, data: any, resourceKind: AdvanceResourceKind, + resourcePrefix: AdvanceResourcePrefix, resourceKindProperty: AdvanceResourceKind, property: any +}) => { return { - uuid, - user, - metadata, - apiResponse: apiResponseKind(data), - pythonHeader: pythonHeader(resourceKind), - pythonExample: pythonExample(uuid, resourcePrefix), - cliGetHeader: cliGetHeader(resourceKind), - cliGetExample: cliGetExample(uuid, resourceKind), - cliUpdateHeader: cliUpdateHeader(resourceKind, resourceKindProperty), - cliUpdateExample: cliUpdateExample(uuid, resourceKind, property, resourceKindProperty), - curlHeader: curlHeader(resourceKind, resourceKindProperty), - curlExample: curlExample(uuid, resourcePrefix, property, resourceKind, resourceKindProperty), + uuid: args.uuid, + user: args.user, + metadata: args.metadata, + apiResponse: args.apiResponseKind(args.data), + pythonHeader: pythonHeader(args.resourceKind), + pythonExample: pythonExample(args.uuid, args.resourcePrefix), + cliGetHeader: cliGetHeader(args.resourceKind), + cliGetExample: cliGetExample(args.uuid, args.resourceKind), + cliUpdateHeader: cliUpdateHeader(args.resourceKind, args.resourceKindProperty), + cliUpdateExample: cliUpdateExample(args.uuid, args.resourceKind, args.property, args.resourceKindProperty), + curlHeader: curlHeader(args.resourceKind, args.resourceKindProperty), + curlExample: curlExample(args.uuid, args.resourcePrefix, args.property, args.resourceKind, args.resourceKindProperty), }; }; diff --git a/src/store/auth/auth-action.ts b/src/store/auth/auth-action.ts index 28559b1a..e1b36f82 100644 --- a/src/store/auth/auth-action.ts +++ b/src/store/auth/auth-action.ts @@ -94,9 +94,9 @@ export const openSshKeyCreateDialog = () => dialogActions.OPEN_DIALOG({ id: SSH_ export const openPublicKeyDialog = (name: string, publicKey: string) => dialogActions.OPEN_DIALOG({ id: SSH_KEY_PUBLIC_KEY_DIALOG, data: { name, publicKey } }); -export const openSshKeyAttributesDialog = (index: number) => +export const openSshKeyAttributesDialog = (uuid: string) => (dispatch: Dispatch, getState: () => RootState) => { - const sshKey = getState().auth.sshKeys[index]; + const sshKey = getState().auth.sshKeys.find(it => it.uuid === uuid); dispatch(dialogActions.OPEN_DIALOG({ id: SSH_KEY_ATTRIBUTES_DIALOG, data: { sshKey } })); }; diff --git a/src/store/context-menu/context-menu-actions.ts b/src/store/context-menu/context-menu-actions.ts index 0dbae18b..1412d958 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -63,39 +63,36 @@ export const openCollectionFilesContextMenu = (event: React.MouseEvent, index: number, repository: RepositoryResource) => +export const openRepositoryContextMenu = (event: React.MouseEvent, repository: RepositoryResource) => (dispatch: Dispatch, getState: () => RootState) => { dispatch(openContextMenu(event, { name: '', uuid: repository.uuid, ownerUuid: repository.ownerUuid, kind: ResourceKind.REPOSITORY, - menuKind: ContextMenuKind.REPOSITORY, - index + menuKind: ContextMenuKind.REPOSITORY })); }; -export const openVirtualMachinesContextMenu = (event: React.MouseEvent, index: number, repository: VirtualMachinesResource) => +export const openVirtualMachinesContextMenu = (event: React.MouseEvent, repository: VirtualMachinesResource) => (dispatch: Dispatch, getState: () => RootState) => { dispatch(openContextMenu(event, { name: '', uuid: repository.uuid, ownerUuid: repository.ownerUuid, kind: ResourceKind.VIRTUAL_MACHINE, - menuKind: ContextMenuKind.VIRTUAL_MACHINE, - index + menuKind: ContextMenuKind.VIRTUAL_MACHINE })); }; -export const openSshKeyContextMenu = (event: React.MouseEvent, index: number, sshKey: SshKeyResource) => +export const openSshKeyContextMenu = (event: React.MouseEvent, sshKey: SshKeyResource) => (dispatch: Dispatch) => { dispatch(openContextMenu(event, { name: '', uuid: sshKey.uuid, ownerUuid: sshKey.ownerUuid, kind: ResourceKind.SSH_KEY, - menuKind: ContextMenuKind.SSH_KEY, - index + menuKind: ContextMenuKind.SSH_KEY })); }; diff --git a/src/store/repositories/repositories-actions.ts b/src/store/repositories/repositories-actions.ts index d6172899..61caa769 100644 --- a/src/store/repositories/repositories-actions.ts +++ b/src/store/repositories/repositories-actions.ts @@ -32,9 +32,9 @@ export const openRepositoriesSampleGitDialog = () => dispatch(dialogActions.OPEN_DIALOG({ id: REPOSITORIES_SAMPLE_GIT_DIALOG, data: { uuidPrefix } })); }; -export const openRepositoryAttributes = (index: number) => +export const openRepositoryAttributes = (uuid: string) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - const repositoryData = getState().repositories.items[index]; + const repositoryData = getState().repositories.items.find(it => it.uuid === uuid); dispatch(dialogActions.OPEN_DIALOG({ id: REPOSITORY_ATTRIBUTES_DIALOG, data: { repositoryData } })); }; diff --git a/src/store/virtual-machines/virtual-machines-actions.ts b/src/store/virtual-machines/virtual-machines-actions.ts index d87433f9..c95277b3 100644 --- a/src/store/virtual-machines/virtual-machines-actions.ts +++ b/src/store/virtual-machines/virtual-machines-actions.ts @@ -33,9 +33,9 @@ export const openVirtualMachines = () => dispatch(navigateToVirtualMachines); }; -export const openVirtualMachineAttributes = (index: number) => +export const openVirtualMachineAttributes = (uuid: string) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - const virtualMachineData = getState().virtualMachines.virtualMachines.items[index]; + const virtualMachineData = getState().virtualMachines.virtualMachines.items.find(it => it.uuid === uuid); dispatch(dialogActions.OPEN_DIALOG({ id: VIRTUAL_MACHINE_ATTRIBUTES_DIALOG, data: { virtualMachineData } })); }; diff --git a/src/views-components/context-menu/action-sets/repository-action-set.ts b/src/views-components/context-menu/action-sets/repository-action-set.ts index 22f6bee1..82c2f2b8 100644 --- a/src/views-components/context-menu/action-sets/repository-action-set.ts +++ b/src/views-components/context-menu/action-sets/repository-action-set.ts @@ -11,8 +11,8 @@ import { openSharingDialog } from "~/store/sharing-dialog/sharing-dialog-actions export const repositoryActionSet: ContextMenuActionSet = [[{ name: "Attributes", icon: AttributesIcon, - execute: (dispatch, { index }) => { - dispatch(openRepositoryAttributes(index!)); + execute: (dispatch, { uuid }) => { + dispatch(openRepositoryAttributes(uuid)); } }, { name: "Share", @@ -24,7 +24,7 @@ export const repositoryActionSet: ContextMenuActionSet = [[{ name: "Advanced", icon: AdvancedIcon, execute: (dispatch, resource) => { - dispatch(openAdvancedTabDialog(resource.uuid, resource.index)); + dispatch(openAdvancedTabDialog(resource.uuid)); } }, { name: "Remove", diff --git a/src/views-components/context-menu/action-sets/ssh-key-action-set.ts b/src/views-components/context-menu/action-sets/ssh-key-action-set.ts index 6e86b2bc..0ce0c431 100644 --- a/src/views-components/context-menu/action-sets/ssh-key-action-set.ts +++ b/src/views-components/context-menu/action-sets/ssh-key-action-set.ts @@ -10,14 +10,14 @@ import { openAdvancedTabDialog } from '~/store/advanced-tab/advanced-tab'; export const sshKeyActionSet: ContextMenuActionSet = [[{ name: "Attributes", icon: AttributesIcon, - execute: (dispatch, { index }) => { - dispatch(openSshKeyAttributesDialog(index!)); + execute: (dispatch, { uuid }) => { + dispatch(openSshKeyAttributesDialog(uuid)); } }, { name: "Advanced", icon: AdvancedIcon, - execute: (dispatch, { uuid, index }) => { - dispatch(openAdvancedTabDialog(uuid, index)); + execute: (dispatch, { uuid }) => { + dispatch(openAdvancedTabDialog(uuid)); } }, { name: "Remove", diff --git a/src/views-components/context-menu/action-sets/virtual-machine-action-set.ts b/src/views-components/context-menu/action-sets/virtual-machine-action-set.ts index bb04b8c6..ea274af1 100644 --- a/src/views-components/context-menu/action-sets/virtual-machine-action-set.ts +++ b/src/views-components/context-menu/action-sets/virtual-machine-action-set.ts @@ -10,14 +10,14 @@ import { openVirtualMachineAttributes, openRemoveVirtualMachineDialog } from "~/ export const virtualMachineActionSet: ContextMenuActionSet = [[{ name: "Attributes", icon: AttributesIcon, - execute: (dispatch, { index }) => { - dispatch(openVirtualMachineAttributes(index!)); + execute: (dispatch, { uuid }) => { + dispatch(openVirtualMachineAttributes(uuid)); } }, { name: "Advanced", icon: AdvancedIcon, - execute: (dispatch, { uuid, index }) => { - dispatch(openAdvancedTabDialog(uuid, index)); + execute: (dispatch, { uuid }) => { + dispatch(openAdvancedTabDialog(uuid)); } }, { name: "Remove", diff --git a/src/views-components/virtual-machines-dialog/attributes-dialog.tsx b/src/views-components/virtual-machines-dialog/attributes-dialog.tsx index 78b58da5..05c1b0a0 100644 --- a/src/views-components/virtual-machines-dialog/attributes-dialog.tsx +++ b/src/views-components/virtual-machines-dialog/attributes-dialog.tsx @@ -7,14 +7,14 @@ import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, import { WithDialogProps } from "~/store/dialog/with-dialog"; import { withDialog } from '~/store/dialog/with-dialog'; import { VIRTUAL_MACHINE_ATTRIBUTES_DIALOG } from "~/store/virtual-machines/virtual-machines-actions"; -import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'; +import { WithStyles, withStyles } from '@material-ui/core/styles'; import { ArvadosTheme } from '~/common/custom-theme'; import { compose } from "redux"; import { VirtualMachinesResource } from "~/models/virtual-machines"; type CssRules = 'rightContainer' | 'leftContainer' | 'spacing'; -const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ +const styles = withStyles((theme: ArvadosTheme) => ({ rightContainer: { textAlign: 'right', paddingRight: theme.spacing.unit * 2, @@ -27,7 +27,7 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ spacing: { paddingTop: theme.spacing.unit * 2 }, -}); +})); interface VirtualMachineAttributesDataProps { virtualMachineData: VirtualMachinesResource; @@ -37,7 +37,7 @@ type VirtualMachineAttributesProps = VirtualMachineAttributesDataProps & WithSty export const VirtualMachineAttributesDialog = compose( withDialog(VIRTUAL_MACHINE_ATTRIBUTES_DIALOG), - withStyles(styles))( + styles)( (props: WithDialogProps & VirtualMachineAttributesProps) => { const mapDispatchToProps = (dispatch: Dispatch): Pick => ({ loadRepositories: () => dispatch(loadRepositoriesData()), - onOptionsMenuOpen: (event, index, repository) => { - dispatch(openRepositoryContextMenu(event, index, repository)); + onOptionsMenuOpen: (event, repository) => { + dispatch(openRepositoryContextMenu(event, repository)); }, openRepositoriesSampleGitDialog: () => dispatch(openRepositoriesSampleGitDialog()), openRepositoryCreateDialog: () => dispatch(openRepositoryCreateDialog()) @@ -75,7 +75,7 @@ const mapDispatchToProps = (dispatch: Dispatch): Pick void; - onOptionsMenuOpen: (event: React.MouseEvent, index: number, repository: RepositoryResource) => void; + onOptionsMenuOpen: (event: React.MouseEvent, repository: RepositoryResource) => void; openRepositoriesSampleGitDialog: () => void; openRepositoryCreateDialog: () => void; } @@ -137,7 +137,7 @@ export const RepositoriesPanel = compose( {repository.cloneUrls.join("\n")} - onOptionsMenuOpen(event, index, repository)} className={classes.moreOptionsButton}> + onOptionsMenuOpen(event, repository)} className={classes.moreOptionsButton}> diff --git a/src/views/ssh-key-panel/ssh-key-panel-root.tsx b/src/views/ssh-key-panel/ssh-key-panel-root.tsx index 869662dd..2cdad07d 100644 --- a/src/views/ssh-key-panel/ssh-key-panel-root.tsx +++ b/src/views/ssh-key-panel/ssh-key-panel-root.tsx @@ -38,7 +38,7 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ export interface SshKeyPanelRootActionProps { openSshKeyCreateDialog: () => void; - openRowOptions: (event: React.MouseEvent, index: number, sshKey: SshKeyResource) => void; + openRowOptions: (event: React.MouseEvent, sshKey: SshKeyResource) => void; openPublicKeyDialog: (name: string, publicKey: string) => void; } @@ -102,7 +102,7 @@ export const SshKeyPanelRoot = withStyles(styles)( - openRowOptions(event, index, sshKey)}> + openRowOptions(event, sshKey)}> diff --git a/src/views/ssh-key-panel/ssh-key-panel.tsx b/src/views/ssh-key-panel/ssh-key-panel.tsx index c7e3516e..4e800296 100644 --- a/src/views/ssh-key-panel/ssh-key-panel.tsx +++ b/src/views/ssh-key-panel/ssh-key-panel.tsx @@ -20,8 +20,8 @@ const mapDispatchToProps = (dispatch: Dispatch): SshKeyPanelRootActionProps => ( openSshKeyCreateDialog: () => { dispatch(openSshKeyCreateDialog()); }, - openRowOptions: (event, index, sshKey) => { - dispatch(openSshKeyContextMenu(event, index, sshKey)); + openRowOptions: (event, sshKey) => { + dispatch(openSshKeyContextMenu(event, sshKey)); }, openPublicKeyDialog: (name: string, publicKey: string) => { dispatch(openPublicKeyDialog(name, publicKey)); diff --git a/src/views/virtual-machine-panel/virtual-machine-panel.tsx b/src/views/virtual-machine-panel/virtual-machine-panel.tsx index de5e33a0..5dbd3f09 100644 --- a/src/views/virtual-machine-panel/virtual-machine-panel.tsx +++ b/src/views/virtual-machine-panel/virtual-machine-panel.tsx @@ -13,7 +13,7 @@ import { compose, Dispatch } from 'redux'; import { saveRequestedDate, loadVirtualMachinesData } from '~/store/virtual-machines/virtual-machines-actions'; import { RootState } from '~/store/store'; import { ListResults } from '~/services/common-service/common-resource-service'; -import { HelpIcon, MoreOptionsIcon, AddIcon } from '~/components/icon/icon'; +import { HelpIcon, MoreOptionsIcon } from '~/components/icon/icon'; import { VirtualMachineLogins, VirtualMachinesResource } from '~/models/virtual-machines'; import { Routes } from '~/routes/routes'; import { openVirtualMachinesContextMenu } from '~/store/context-menu/context-menu-actions'; @@ -80,8 +80,8 @@ const mapStateToProps = ({ virtualMachines, auth }: RootState) => { const mapDispatchToProps = (dispatch: Dispatch): Pick => ({ saveRequestedDate: () => dispatch(saveRequestedDate()), loadVirtualMachinesData: () => dispatch(loadVirtualMachinesData()), - onOptionsMenuOpen: (event, index, virtualMachine) => { - dispatch(openVirtualMachinesContextMenu(event, index, virtualMachine)); + onOptionsMenuOpen: (event, virtualMachine) => { + dispatch(openVirtualMachinesContextMenu(event, virtualMachine)); }, }); @@ -96,7 +96,7 @@ interface VirtualMachinesPanelDataProps { interface VirtualMachinesPanelActionProps { saveRequestedDate: () => void; loadVirtualMachinesData: () => string; - onOptionsMenuOpen: (event: React.MouseEvent, index: number, virtualMachine: VirtualMachinesResource) => void; + onOptionsMenuOpen: (event: React.MouseEvent, virtualMachine: VirtualMachinesResource) => void; } type VirtualMachineProps = VirtualMachinesPanelActionProps & VirtualMachinesPanelDataProps & WithStyles; @@ -217,7 +217,7 @@ const adminVirtualMachinesTable = (props: VirtualMachineProps) => ["{props.logins.items[0].username}"] - props.onOptionsMenuOpen(event, index, it)} className={props.classes.moreOptionsButton}> + props.onOptionsMenuOpen(event, it)} className={props.classes.moreOptionsButton}>