DataSourcesList.tsx 1021 B

12345678910111213141516171819202122232425262728293031323334
  1. import React, { PureComponent } from 'react';
  2. import classNames from 'classnames/bind';
  3. import DataSourcesListItem from './DataSourcesListItem';
  4. import { DataSource } from 'app/types';
  5. import { LayoutMode, LayoutModes } from '../../core/components/LayoutSelector/LayoutSelector';
  6. export interface Props {
  7. dataSources: DataSource[];
  8. layoutMode: LayoutMode;
  9. }
  10. export class DataSourcesList extends PureComponent<Props> {
  11. render() {
  12. const { dataSources, layoutMode } = this.props;
  13. const listStyle = classNames({
  14. 'card-section': true,
  15. 'card-list-layout-grid': layoutMode === LayoutModes.Grid,
  16. 'card-list-layout-list': layoutMode === LayoutModes.List,
  17. });
  18. return (
  19. <section className={listStyle}>
  20. <ol className="card-list">
  21. {dataSources.map((dataSource, index) => {
  22. return <DataSourcesListItem dataSource={dataSource} key={`${dataSource.id}-${index}`} />;
  23. })}
  24. </ol>
  25. </section>
  26. );
  27. }
  28. }
  29. export default DataSourcesList;