import React from 'react'; import { Dispatch } from 'redux'; import { connect } from 'react-redux'; import { RootAction, RootState } from '../../state'; import { cancel } from '../../state/workloads/actions'; import { WorkloadItem, WorkloadItemStateProps } from '../WorkloadItem'; export interface WorkloadListStateProps { workloads: WorkloadItemStateProps[]; } export interface WorkloadListDispatchProps { cancelWorkload: (id: number) => void; } export interface WorkloadListProps extends WorkloadListStateProps, WorkloadListDispatchProps {} const WorkloadList: React.SFC = ({ workloads, cancelWorkload }) => ( !workloads.length ? ( No workloads to display ) : (
    {workloads.map((workload) => (
  1. cancelWorkload(workload.id)} />
  2. ))}
) ); const mapStateToProps = (state: RootState): WorkloadListStateProps => ({ workloads: Object.values(state.workloads), }); const mapDispatchToProps = (dispatch: Dispatch): WorkloadListDispatchProps => ({ cancelWorkload: (id: number) => dispatch(cancel({ id })), }) const WorkloadListContainer = connect(mapStateToProps, mapDispatchToProps)(WorkloadList); export { WorkloadList, WorkloadListContainer, }; export default WorkloadList;