mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 16:45:43 -06:00
50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
// Libraries
|
|
import React, { FC } from 'react';
|
|
|
|
// Types
|
|
import { DataSourceSettings, LayoutMode } from '@grafana/data';
|
|
import { Card, Tag, useStyles } from '@grafana/ui';
|
|
import { css } from '@emotion/css';
|
|
|
|
export interface Props {
|
|
dataSources: DataSourceSettings[];
|
|
layoutMode: LayoutMode;
|
|
}
|
|
|
|
export const DataSourcesList: FC<Props> = ({ dataSources, layoutMode }) => {
|
|
const styles = useStyles(getStyles);
|
|
|
|
return (
|
|
<ul className={styles.list}>
|
|
{dataSources.map((dataSource, index) => {
|
|
return (
|
|
<li key={dataSource.id}>
|
|
<Card heading={dataSource.name} href={`datasources/edit/${dataSource.uid}`}>
|
|
<Card.Figure>
|
|
<img src={dataSource.typeLogoUrl} alt={dataSource.name} />
|
|
</Card.Figure>
|
|
<Card.Meta>
|
|
{[
|
|
dataSource.typeName,
|
|
dataSource.url,
|
|
dataSource.isDefault && <Tag key="default-tag" name={'default'} colorIndex={1} />,
|
|
]}
|
|
</Card.Meta>
|
|
</Card>
|
|
</li>
|
|
);
|
|
})}
|
|
</ul>
|
|
);
|
|
};
|
|
|
|
export default DataSourcesList;
|
|
|
|
const getStyles = () => {
|
|
return {
|
|
list: css`
|
|
list-style: none;
|
|
`,
|
|
};
|
|
};
|