Sha256: bfb19885577bd3c3f11d9c1857c1c69e18ce97d2fba33a8fa495adc0ae7d0d93

Contents?: true

Size: 1.58 KB

Versions: 36

Compression:

Stored size: 1.58 KB

Contents

import React from 'react';
import { useDispatch } from 'react-redux';
import { push } from 'connected-react-router';
import { Button } from '@patternfly/react-core';
import EmptyStatePattern from './EmptyStatePattern';
import { defaultEmptyStatePropTypes } from './EmptyStatePropTypes';

const DefaultEmptyState = props => {
  const {
    icon,
    iconType,
    header,
    description,
    documentation,
    action,
    secondaryActions,
  } = props;

  const dispatch = useDispatch();
  const actionButtonClickHandler = ({ url, onClick }) => {
    if (onClick) onClick();
    else if (url) dispatch(push(url));
  };

  const ActionButton = action ? (
    <Button
      component="a"
      onClick={() => actionButtonClickHandler(action)}
      variant="primary"
    >
      {action.title}
    </Button>
  ) : null;

  const SecondaryButton = secondaryActions
    ? secondaryActions.map(({ title, url, onClick }) => (
        <Button
          component="a"
          key={`sec-button-${title}`}
          onClick={() => actionButtonClickHandler({ url, onClick })}
          variant="secondary"
        >
          {title}
        </Button>
      ))
    : null;

  return (
    <EmptyStatePattern
      icon={icon}
      iconType={iconType}
      header={header}
      description={description}
      documentation={documentation}
      action={ActionButton}
      secondaryActions={SecondaryButton}
    />
  );
};

DefaultEmptyState.propTypes = defaultEmptyStatePropTypes;

DefaultEmptyState.defaultProps = {
  icon: 'add-circle-o',
  secondaryActions: [],
  iconType: 'pf',
};

export default DefaultEmptyState;

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
foreman_discovery-25.1.0 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-25.0.1 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-25.0.0 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-24.0.2 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-23.0.2 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-24.0.1 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-24.0.0 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-23.0.1 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-23.0.0 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-22.0.4 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-21.0.5 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-22.0.2 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-21.0.4 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-21.0.3 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-21.0.2 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-19.0.5 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-19.0.4 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-21.0.1 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-19.0.3 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js
foreman_discovery-21.0.0 webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js