mirror of https://github.com/portainer/portainer
54 lines
1.1 KiB
TypeScript
54 lines
1.1 KiB
TypeScript
import _ from 'lodash';
|
|
import { useMemo } from 'react';
|
|
|
|
import { humanize } from '@/portainer/filters/filters';
|
|
|
|
import { columnHelper } from './column-helper';
|
|
import { name } from './name';
|
|
import { status } from './status';
|
|
import { availability } from './availability';
|
|
|
|
export { name, status };
|
|
|
|
export const role = columnHelper.accessor('Role', {});
|
|
|
|
export const engine = columnHelper.accessor('EngineVersion', {
|
|
header: 'Engine',
|
|
});
|
|
|
|
export const ip = columnHelper.accessor('Addr', {
|
|
header: 'IP Address',
|
|
});
|
|
|
|
export const cpu = columnHelper.accessor(
|
|
(item) => (item.CPUs ? item.CPUs / 1000000000 : 0),
|
|
{
|
|
header: 'CPU',
|
|
}
|
|
);
|
|
|
|
export const memory = columnHelper.accessor('Memory', {
|
|
header: 'Memory',
|
|
cell({ getValue }) {
|
|
const value = getValue();
|
|
return humanize(value);
|
|
},
|
|
});
|
|
|
|
export function useColumns(isIpColumnVisible: boolean) {
|
|
return useMemo(
|
|
() =>
|
|
_.compact([
|
|
name,
|
|
role,
|
|
cpu,
|
|
memory,
|
|
engine,
|
|
isIpColumnVisible && ip,
|
|
status,
|
|
availability,
|
|
]),
|
|
[isIpColumnVisible]
|
|
);
|
|
}
|