mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-10-12 17:51:36 +08:00
feat: implement page size configuration in infra monitoring (#6950)
This commit is contained in:
parent
813ca8bc23
commit
7c85befc17
@ -13,6 +13,7 @@ import { SorterResult } from 'antd/es/table/interface';
|
|||||||
import logEvent from 'api/common/logEvent';
|
import logEvent from 'api/common/logEvent';
|
||||||
import { HostListPayload } from 'api/infraMonitoring/getHostLists';
|
import { HostListPayload } from 'api/infraMonitoring/getHostLists';
|
||||||
import HostMetricDetail from 'components/HostMetricsDetail';
|
import HostMetricDetail from 'components/HostMetricsDetail';
|
||||||
|
import { usePageSize } from 'container/InfraMonitoringK8s/utils';
|
||||||
import { useGetHostList } from 'hooks/infraMonitoring/useGetHostList';
|
import { useGetHostList } from 'hooks/infraMonitoring/useGetHostList';
|
||||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
import { useSelector } from 'react-redux';
|
import { useSelector } from 'react-redux';
|
||||||
@ -48,7 +49,7 @@ function HostsList(): JSX.Element {
|
|||||||
|
|
||||||
const [selectedHostName, setSelectedHostName] = useState<string | null>(null);
|
const [selectedHostName, setSelectedHostName] = useState<string | null>(null);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize('hosts');
|
||||||
|
|
||||||
const query = useMemo(() => {
|
const query = useMemo(() => {
|
||||||
const baseQuery = getHostListsQuery();
|
const baseQuery = getHostListsQuery();
|
||||||
@ -61,7 +62,7 @@ function HostsList(): JSX.Element {
|
|||||||
end: Math.floor(maxTime / 1000000),
|
end: Math.floor(maxTime / 1000000),
|
||||||
orderBy,
|
orderBy,
|
||||||
};
|
};
|
||||||
}, [currentPage, filters, minTime, maxTime, orderBy]);
|
}, [pageSize, currentPage, filters, minTime, maxTime, orderBy]);
|
||||||
|
|
||||||
const { data, isFetching, isLoading, isError } = useGetHostList(
|
const { data, isFetching, isLoading, isError } = useGetHostList(
|
||||||
query as HostListPayload,
|
query as HostListPayload,
|
||||||
@ -231,8 +232,12 @@ function HostsList(): JSX.Element {
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -32,6 +32,7 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import K8sHeader from '../K8sHeader';
|
import K8sHeader from '../K8sHeader';
|
||||||
import LoadingContainer from '../LoadingContainer';
|
import LoadingContainer from '../LoadingContainer';
|
||||||
|
import { usePageSize } from '../utils';
|
||||||
import ClusterDetails from './ClusterDetails';
|
import ClusterDetails from './ClusterDetails';
|
||||||
import {
|
import {
|
||||||
defaultAddedColumns,
|
defaultAddedColumns,
|
||||||
@ -68,7 +69,7 @@ function K8sClustersList({
|
|||||||
null,
|
null,
|
||||||
);
|
);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.CLUSTERS);
|
||||||
|
|
||||||
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
||||||
|
|
||||||
@ -192,7 +193,7 @@ function K8sClustersList({
|
|||||||
queryPayload.groupBy = groupBy;
|
queryPayload.groupBy = groupBy;
|
||||||
}
|
}
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const formattedGroupedByClustersData = useMemo(
|
const formattedGroupedByClustersData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -461,8 +462,12 @@ function K8sClustersList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -33,6 +33,7 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import K8sHeader from '../K8sHeader';
|
import K8sHeader from '../K8sHeader';
|
||||||
import LoadingContainer from '../LoadingContainer';
|
import LoadingContainer from '../LoadingContainer';
|
||||||
|
import { usePageSize } from '../utils';
|
||||||
import DaemonSetDetails from './DaemonSetDetails';
|
import DaemonSetDetails from './DaemonSetDetails';
|
||||||
import {
|
import {
|
||||||
defaultAddedColumns,
|
defaultAddedColumns,
|
||||||
@ -69,7 +70,7 @@ function K8sDaemonSetsList({
|
|||||||
string | null
|
string | null
|
||||||
>(null);
|
>(null);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.DAEMONSETS);
|
||||||
|
|
||||||
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
||||||
|
|
||||||
@ -193,7 +194,7 @@ function K8sDaemonSetsList({
|
|||||||
queryPayload.groupBy = groupBy;
|
queryPayload.groupBy = groupBy;
|
||||||
}
|
}
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const formattedGroupedByDaemonSetsData = useMemo(
|
const formattedGroupedByDaemonSetsData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -465,8 +466,12 @@ function K8sDaemonSetsList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -33,6 +33,7 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import K8sHeader from '../K8sHeader';
|
import K8sHeader from '../K8sHeader';
|
||||||
import LoadingContainer from '../LoadingContainer';
|
import LoadingContainer from '../LoadingContainer';
|
||||||
|
import { usePageSize } from '../utils';
|
||||||
import DeploymentDetails from './DeploymentDetails';
|
import DeploymentDetails from './DeploymentDetails';
|
||||||
import {
|
import {
|
||||||
defaultAddedColumns,
|
defaultAddedColumns,
|
||||||
@ -69,7 +70,7 @@ function K8sDeploymentsList({
|
|||||||
string | null
|
string | null
|
||||||
>(null);
|
>(null);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.DEPLOYMENTS);
|
||||||
|
|
||||||
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
||||||
|
|
||||||
@ -193,7 +194,7 @@ function K8sDeploymentsList({
|
|||||||
queryPayload.groupBy = groupBy;
|
queryPayload.groupBy = groupBy;
|
||||||
}
|
}
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const formattedGroupedByDeploymentsData = useMemo(
|
const formattedGroupedByDeploymentsData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -468,8 +469,12 @@ function K8sDeploymentsList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -880,3 +880,7 @@
|
|||||||
.entity-group-header {
|
.entity-group-header {
|
||||||
width: 300px !important;
|
width: 300px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ant-table-content {
|
||||||
|
margin-bottom: 60px !important;
|
||||||
|
}
|
||||||
|
@ -33,6 +33,7 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import K8sHeader from '../K8sHeader';
|
import K8sHeader from '../K8sHeader';
|
||||||
import LoadingContainer from '../LoadingContainer';
|
import LoadingContainer from '../LoadingContainer';
|
||||||
|
import { usePageSize } from '../utils';
|
||||||
import JobDetails from './JobDetails';
|
import JobDetails from './JobDetails';
|
||||||
import {
|
import {
|
||||||
defaultAddedColumns,
|
defaultAddedColumns,
|
||||||
@ -67,7 +68,7 @@ function K8sJobsList({
|
|||||||
|
|
||||||
const [selectedJobUID, setselectedJobUID] = useState<string | null>(null);
|
const [selectedJobUID, setselectedJobUID] = useState<string | null>(null);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.JOBS);
|
||||||
|
|
||||||
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
||||||
|
|
||||||
@ -186,7 +187,7 @@ function K8sJobsList({
|
|||||||
queryPayload.groupBy = groupBy;
|
queryPayload.groupBy = groupBy;
|
||||||
}
|
}
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const formattedGroupedByJobsData = useMemo(
|
const formattedGroupedByJobsData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -450,8 +451,12 @@ function K8sJobsList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -32,6 +32,7 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import K8sHeader from '../K8sHeader';
|
import K8sHeader from '../K8sHeader';
|
||||||
import LoadingContainer from '../LoadingContainer';
|
import LoadingContainer from '../LoadingContainer';
|
||||||
|
import { usePageSize } from '../utils';
|
||||||
import NamespaceDetails from './NamespaceDetails';
|
import NamespaceDetails from './NamespaceDetails';
|
||||||
import {
|
import {
|
||||||
defaultAddedColumns,
|
defaultAddedColumns,
|
||||||
@ -68,7 +69,7 @@ function K8sNamespacesList({
|
|||||||
string | null
|
string | null
|
||||||
>(null);
|
>(null);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.NAMESPACES);
|
||||||
|
|
||||||
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
||||||
|
|
||||||
@ -192,7 +193,7 @@ function K8sNamespacesList({
|
|||||||
queryPayload.groupBy = groupBy;
|
queryPayload.groupBy = groupBy;
|
||||||
}
|
}
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const formattedGroupedByNamespacesData = useMemo(
|
const formattedGroupedByNamespacesData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -463,8 +464,12 @@ function K8sNamespacesList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -32,6 +32,7 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import K8sHeader from '../K8sHeader';
|
import K8sHeader from '../K8sHeader';
|
||||||
import LoadingContainer from '../LoadingContainer';
|
import LoadingContainer from '../LoadingContainer';
|
||||||
|
import { usePageSize } from '../utils';
|
||||||
import NodeDetails from './NodeDetails';
|
import NodeDetails from './NodeDetails';
|
||||||
import {
|
import {
|
||||||
defaultAddedColumns,
|
defaultAddedColumns,
|
||||||
@ -66,7 +67,7 @@ function K8sNodesList({
|
|||||||
|
|
||||||
const [selectedNodeUID, setselectedNodeUID] = useState<string | null>(null);
|
const [selectedNodeUID, setselectedNodeUID] = useState<string | null>(null);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.NODES);
|
||||||
|
|
||||||
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
||||||
|
|
||||||
@ -185,7 +186,7 @@ function K8sNodesList({
|
|||||||
queryPayload.groupBy = groupBy;
|
queryPayload.groupBy = groupBy;
|
||||||
}
|
}
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const formattedGroupedByNodesData = useMemo(
|
const formattedGroupedByNodesData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -448,8 +449,12 @@ function K8sNodesList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -41,6 +41,7 @@ import {
|
|||||||
getK8sPodsListQuery,
|
getK8sPodsListQuery,
|
||||||
IEntityColumn,
|
IEntityColumn,
|
||||||
K8sPodsRowData,
|
K8sPodsRowData,
|
||||||
|
usePageSize,
|
||||||
} from '../utils';
|
} from '../utils';
|
||||||
import PodDetails from './PodDetails/PodDetails';
|
import PodDetails from './PodDetails/PodDetails';
|
||||||
|
|
||||||
@ -136,7 +137,7 @@ function K8sPodsList({
|
|||||||
|
|
||||||
const [selectedPodUID, setSelectedPodUID] = useState<string | null>(null);
|
const [selectedPodUID, setSelectedPodUID] = useState<string | null>(null);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.PODS);
|
||||||
|
|
||||||
const query = useMemo(() => {
|
const query = useMemo(() => {
|
||||||
const baseQuery = getK8sPodsListQuery();
|
const baseQuery = getK8sPodsListQuery();
|
||||||
@ -156,7 +157,7 @@ function K8sPodsList({
|
|||||||
}
|
}
|
||||||
|
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const { data, isFetching, isLoading, isError } = useGetK8sPodsList(
|
const { data, isFetching, isLoading, isError } = useGetK8sPodsList(
|
||||||
query as K8sPodsListPayload,
|
query as K8sPodsListPayload,
|
||||||
@ -513,8 +514,12 @@ function K8sPodsList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
loading={{
|
loading={{
|
||||||
spinning: isFetching || isLoading,
|
spinning: isFetching || isLoading,
|
||||||
|
@ -33,6 +33,7 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import K8sHeader from '../K8sHeader';
|
import K8sHeader from '../K8sHeader';
|
||||||
import LoadingContainer from '../LoadingContainer';
|
import LoadingContainer from '../LoadingContainer';
|
||||||
|
import { usePageSize } from '../utils';
|
||||||
import StatefulSetDetails from './StatefulSetDetails';
|
import StatefulSetDetails from './StatefulSetDetails';
|
||||||
import {
|
import {
|
||||||
defaultAddedColumns,
|
defaultAddedColumns,
|
||||||
@ -69,7 +70,7 @@ function K8sStatefulSetsList({
|
|||||||
string | null
|
string | null
|
||||||
>(null);
|
>(null);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.STATEFULSETS);
|
||||||
|
|
||||||
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
||||||
|
|
||||||
@ -193,7 +194,7 @@ function K8sStatefulSetsList({
|
|||||||
queryPayload.groupBy = groupBy;
|
queryPayload.groupBy = groupBy;
|
||||||
}
|
}
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const formattedGroupedByStatefulSetsData = useMemo(
|
const formattedGroupedByStatefulSetsData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -467,8 +468,12 @@ function K8sStatefulSetsList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -33,6 +33,7 @@ import {
|
|||||||
} from '../constants';
|
} from '../constants';
|
||||||
import K8sHeader from '../K8sHeader';
|
import K8sHeader from '../K8sHeader';
|
||||||
import LoadingContainer from '../LoadingContainer';
|
import LoadingContainer from '../LoadingContainer';
|
||||||
|
import { usePageSize } from '../utils';
|
||||||
import {
|
import {
|
||||||
defaultAddedColumns,
|
defaultAddedColumns,
|
||||||
formatDataForTable,
|
formatDataForTable,
|
||||||
@ -69,7 +70,7 @@ function K8sVolumesList({
|
|||||||
null,
|
null,
|
||||||
);
|
);
|
||||||
|
|
||||||
const pageSize = 10;
|
const { pageSize, setPageSize } = usePageSize(K8sCategory.VOLUMES);
|
||||||
|
|
||||||
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
const [groupBy, setGroupBy] = useState<IBuilderQuery['groupBy']>([]);
|
||||||
|
|
||||||
@ -189,7 +190,7 @@ function K8sVolumesList({
|
|||||||
queryPayload.groupBy = groupBy;
|
queryPayload.groupBy = groupBy;
|
||||||
}
|
}
|
||||||
return queryPayload;
|
return queryPayload;
|
||||||
}, [currentPage, minTime, maxTime, orderBy, groupBy, queryFilters]);
|
}, [pageSize, currentPage, queryFilters, minTime, maxTime, orderBy, groupBy]);
|
||||||
|
|
||||||
const formattedGroupedByVolumesData = useMemo(
|
const formattedGroupedByVolumesData = useMemo(
|
||||||
() =>
|
() =>
|
||||||
@ -457,8 +458,12 @@ function K8sVolumesList({
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
pageSize,
|
pageSize,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
showSizeChanger: false,
|
showSizeChanger: true,
|
||||||
hideOnSinglePage: true,
|
hideOnSinglePage: false,
|
||||||
|
onChange: (page, pageSize): void => {
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pageSize);
|
||||||
|
},
|
||||||
}}
|
}}
|
||||||
scroll={{ x: true }}
|
scroll={{ x: true }}
|
||||||
loading={{
|
loading={{
|
||||||
|
@ -6,6 +6,8 @@ import {
|
|||||||
import { DataTypes } from 'types/api/queryBuilder/queryAutocompleteResponse';
|
import { DataTypes } from 'types/api/queryBuilder/queryAutocompleteResponse';
|
||||||
import { DataSource } from 'types/common/queryBuilder';
|
import { DataSource } from 'types/common/queryBuilder';
|
||||||
|
|
||||||
|
export const DEFAULT_PAGE_SIZE = 10;
|
||||||
|
|
||||||
export enum K8sCategory {
|
export enum K8sCategory {
|
||||||
HOSTS = 'hosts',
|
HOSTS = 'hosts',
|
||||||
PODS = 'pods',
|
PODS = 'pods',
|
||||||
|
@ -5,11 +5,14 @@ import './InfraMonitoringK8s.styles.scss';
|
|||||||
import { Color } from '@signozhq/design-tokens';
|
import { Color } from '@signozhq/design-tokens';
|
||||||
import { Tag, Tooltip } from 'antd';
|
import { Tag, Tooltip } from 'antd';
|
||||||
import { ColumnType } from 'antd/es/table';
|
import { ColumnType } from 'antd/es/table';
|
||||||
|
import get from 'api/browser/localstorage/get';
|
||||||
|
import set from 'api/browser/localstorage/set';
|
||||||
import {
|
import {
|
||||||
K8sPodsData,
|
K8sPodsData,
|
||||||
K8sPodsListPayload,
|
K8sPodsListPayload,
|
||||||
} from 'api/infraMonitoring/getK8sPodsList';
|
} from 'api/infraMonitoring/getK8sPodsList';
|
||||||
import { Group } from 'lucide-react';
|
import { Group } from 'lucide-react';
|
||||||
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData';
|
import { IBuilderQuery } from 'types/api/queryBuilder/queryBuilderData';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -17,7 +20,7 @@ import {
|
|||||||
formatBytes,
|
formatBytes,
|
||||||
ValidateColumnValueWrapper,
|
ValidateColumnValueWrapper,
|
||||||
} from './commonUtils';
|
} from './commonUtils';
|
||||||
import { K8sCategory } from './constants';
|
import { DEFAULT_PAGE_SIZE, K8sCategory } from './constants';
|
||||||
|
|
||||||
export interface IEntityColumn {
|
export interface IEntityColumn {
|
||||||
label: string;
|
label: string;
|
||||||
@ -396,3 +399,39 @@ export const formatDataForTable = (
|
|||||||
...pod.meta,
|
...pod.meta,
|
||||||
groupedByMeta: pod.meta,
|
groupedByMeta: pod.meta,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom hook to manage the page size for a table.
|
||||||
|
* The page size is stored in local storage and is retrieved on initialization.
|
||||||
|
* It also provides a function to update the page size and save it to local storage.
|
||||||
|
*/
|
||||||
|
export const usePageSize = (
|
||||||
|
key: string,
|
||||||
|
): { pageSize: number; setPageSize: (pageSize: number) => void } => {
|
||||||
|
const [pageSize, setPageSize] = useState<number>(DEFAULT_PAGE_SIZE);
|
||||||
|
|
||||||
|
// Memoized key for accessing page size in local storage
|
||||||
|
const storageKey = useMemo(() => `k8s-${key}-page-size`, [key]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// Retrieve the stored page size from local storage on component mount
|
||||||
|
const storageValue = get(storageKey);
|
||||||
|
if (storageValue) {
|
||||||
|
setPageSize(parseInt(storageValue, 10));
|
||||||
|
}
|
||||||
|
}, [storageKey]);
|
||||||
|
|
||||||
|
// Function to update the page size and save it to local storage
|
||||||
|
const handlePageSizeChange = useCallback(
|
||||||
|
(value: number) => {
|
||||||
|
setPageSize(value);
|
||||||
|
set(storageKey, value.toString());
|
||||||
|
},
|
||||||
|
[storageKey],
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
pageSize,
|
||||||
|
setPageSize: handlePageSizeChange,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user