diff --git a/frontend/packages/console-app/src/components/data-view/ConsoleDataView.tsx b/frontend/packages/console-app/src/components/data-view/ConsoleDataView.tsx index 4ff9e478904..1b6b1eb5b6b 100644 --- a/frontend/packages/console-app/src/components/data-view/ConsoleDataView.tsx +++ b/frontend/packages/console-app/src/components/data-view/ConsoleDataView.tsx @@ -26,7 +26,13 @@ import { ResourceFilters, ResourceMetadata, GetDataViewRows } from './types'; import { useConsoleDataViewData } from './useConsoleDataViewData'; import { useConsoleDataViewFilters } from './useConsoleDataViewFilters'; -export type ConsoleDataViewProps = { +export const initialFiltersDefault: ResourceFilters = { name: '', label: '' }; + +export type ConsoleDataViewProps< + TData, + TCustomRowData = any, + TFilters extends ResourceFilters = ResourceFilters +> = { label?: string; data: TData[]; loaded: boolean; @@ -34,7 +40,7 @@ export type ConsoleDataViewProps = { columns: TableColumn[]; columnLayout?: ColumnLayout; columnManagementID?: string; - initialFilters: TFilters; + initialFilters?: TFilters; additionalFilterNodes?: React.ReactNode[]; /** * By default, `TData` is assumed to be assignable to `K8sResourceCommon` type. @@ -86,7 +92,7 @@ export const ConsoleDataView = < columns, columnLayout, columnManagementID, - initialFilters, + initialFilters = initialFiltersDefault as TFilters, additionalFilterNodes, getObjectMetadata, matchesAdditionalFilters, @@ -253,5 +259,3 @@ export const actionsCellProps = { hasLeftBorder: true, isActionCell: true, }; - -export const initialFiltersDefault = { name: '', label: '' }; diff --git a/frontend/packages/console-app/src/components/data-view/types.ts b/frontend/packages/console-app/src/components/data-view/types.ts index 9ff38e0f015..bffadab6f6e 100644 --- a/frontend/packages/console-app/src/components/data-view/types.ts +++ b/frontend/packages/console-app/src/components/data-view/types.ts @@ -23,7 +23,7 @@ export type ConsoleDataViewRow = DataViewTd[]; /** * Maps Console `RowProps` data to DataView compatible format. */ -export type GetDataViewRows = ( +export type GetDataViewRows = ( data: RowProps[], columns: ConsoleDataViewColumn[], ) => ConsoleDataViewRow[]; diff --git a/frontend/packages/console-app/src/components/nodes/NodesPage.tsx b/frontend/packages/console-app/src/components/nodes/NodesPage.tsx index 9b0ed6a6b5b..34da510ad2a 100644 --- a/frontend/packages/console-app/src/components/nodes/NodesPage.tsx +++ b/frontend/packages/console-app/src/components/nodes/NodesPage.tsx @@ -545,6 +545,11 @@ const NodeList: React.FC = ({ [], ); + const initialFilters = React.useMemo( + () => ({ ...initialFiltersDefault, status: [], roles: [], architecture: [] }), + [], + ); + // Create stable filter nodes with stable option references to prevent filter resets const additionalFilterNodes = React.useMemo( () => [ @@ -622,9 +627,7 @@ const NodeList: React.FC = ({ columns={columns} columnLayout={columnLayout} columnManagementID={columnManagementID} - initialFilters={ - { ...initialFiltersDefault, status: [], roles: [], architecture: [] } as NodeFilters - } + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} matchesAdditionalFilters={matchesAdditionalFilters} getDataViewRows={(rowData, tableColumns) => diff --git a/frontend/packages/console-app/src/components/pdb/PDBList.tsx b/frontend/packages/console-app/src/components/pdb/PDBList.tsx index 37b11b296cf..51e0057bdf3 100644 --- a/frontend/packages/console-app/src/components/pdb/PDBList.tsx +++ b/frontend/packages/console-app/src/components/pdb/PDBList.tsx @@ -4,7 +4,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -31,7 +30,7 @@ export const tableColumnInfo = [ { id: '' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj: pdb }) => { const { name, namespace } = pdb.metadata; const resourceKind = referenceForModel(PodDisruptionBudgetModel); @@ -155,7 +154,6 @@ const PodDisruptionBudgetList: React.FCC = ({ data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement /> diff --git a/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesList.tsx b/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesList.tsx index 43326c42f87..d99c26760ef 100644 --- a/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesList.tsx +++ b/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesList.tsx @@ -1,9 +1,6 @@ import * as React from 'react'; import { useTranslation } from 'react-i18next'; -import { - ConsoleDataView, - initialFiltersDefault, -} from '@console/app/src/components/data-view/ConsoleDataView'; +import { ConsoleDataView } from '@console/app/src/components/data-view/ConsoleDataView'; import { TableProps } from '@console/internal/components/factory'; import { LoadingBox } from '@console/internal/components/utils'; import { K8sResourceKind } from '@console/internal/module/k8s'; @@ -22,7 +19,6 @@ const HelmReleaseResourcesList: React.FC = (props) => { loaded={props.loaded} label={t('helm-plugin~Resources')} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement data-test="helm-resources-list" diff --git a/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesRow.tsx b/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesRow.tsx index 5b97e2bd38a..65d30f82675 100644 --- a/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesRow.tsx +++ b/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesRow.tsx @@ -31,7 +31,7 @@ export const HelmReleaseResourceStatus: React.FC ); }; -export const getDataViewRows: GetDataViewRows = (data, columns) => { +export const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj: resource }) => { const kind = referenceFor(resource); const rowCells = { diff --git a/frontend/packages/helm-plugin/src/components/details-page/resources/__tests__/HelmReleaseResourcesRow.spec.tsx b/frontend/packages/helm-plugin/src/components/details-page/resources/__tests__/HelmReleaseResourcesRow.spec.tsx index 53020476af9..c7f159185e3 100644 --- a/frontend/packages/helm-plugin/src/components/details-page/resources/__tests__/HelmReleaseResourcesRow.spec.tsx +++ b/frontend/packages/helm-plugin/src/components/details-page/resources/__tests__/HelmReleaseResourcesRow.spec.tsx @@ -5,7 +5,7 @@ import { getDataViewRows, HelmReleaseResourceStatus } from '../HelmReleaseResour configure({ testIdAttribute: 'data-test' }); -let testData: RowProps[]; +let testData: RowProps[]; let testColumns: TableColumn[]; describe('getDataViewRows', () => { diff --git a/frontend/packages/helm-plugin/src/components/list-page/HelmChartRepositoryList.tsx b/frontend/packages/helm-plugin/src/components/list-page/HelmChartRepositoryList.tsx index 9b4a1aa8960..4ac575f6e25 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/HelmChartRepositoryList.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/HelmChartRepositoryList.tsx @@ -1,9 +1,6 @@ import * as React from 'react'; import { useTranslation } from 'react-i18next'; -import { - ConsoleDataView, - initialFiltersDefault, -} from '@console/app/src/components/data-view/ConsoleDataView'; +import { ConsoleDataView } from '@console/app/src/components/data-view/ConsoleDataView'; import { TableProps } from '@console/internal/components/factory'; import { LoadingBox } from '@console/internal/components/utils'; import { K8sResourceKind } from '@console/internal/module/k8s'; @@ -22,7 +19,6 @@ const HelmChartRepositoryList: React.FC = (props) => { loaded={props.loaded} label={t('helm-plugin~HelmChartRepositories')} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement data-test="helm-chart-repositories-list" diff --git a/frontend/packages/helm-plugin/src/components/list-page/HelmChartRepositoryRow.tsx b/frontend/packages/helm-plugin/src/components/list-page/HelmChartRepositoryRow.tsx index e7dfacd14a8..d01c8d6dbba 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/HelmChartRepositoryRow.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/HelmChartRepositoryRow.tsx @@ -23,7 +23,7 @@ const DisabledCell: React.FC<{ disabled?: boolean }> = ({ disabled }) => { return <>{disabled ? t('helm-plugin~True') : t('helm-plugin~False')}; }; -export const getDataViewRows: GetDataViewRows = (data, columns) => { +export const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const objReference = referenceFor(obj); const context = { [objReference]: obj }; diff --git a/frontend/packages/helm-plugin/src/components/list-page/HelmReleaseList.tsx b/frontend/packages/helm-plugin/src/components/list-page/HelmReleaseList.tsx index 789f7249ca2..40911917637 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/HelmReleaseList.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/HelmReleaseList.tsx @@ -193,6 +193,8 @@ const HelmReleaseList: React.FC = () => { })); }, []); + const initialFilters = React.useMemo(() => ({ ...initialFiltersDefault, status: [] }), []); + const additionalFilterNodes = React.useMemo( () => [ { loaded={isLoaded} loadError={secretsLoadError || loadError} columns={columns} - initialFilters={{ ...initialFiltersDefault, status: [] }} + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} getObjectMetadata={getObjectMetadata} matchesAdditionalFilters={matchesAdditionalFilters} diff --git a/frontend/packages/helm-plugin/src/components/list-page/ProjectHelmChartRepositoryList.tsx b/frontend/packages/helm-plugin/src/components/list-page/ProjectHelmChartRepositoryList.tsx index f7d6aba6b35..0774d59a1e1 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/ProjectHelmChartRepositoryList.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/ProjectHelmChartRepositoryList.tsx @@ -1,9 +1,6 @@ import * as React from 'react'; import { useTranslation } from 'react-i18next'; -import { - ConsoleDataView, - initialFiltersDefault, -} from '@console/app/src/components/data-view/ConsoleDataView'; +import { ConsoleDataView } from '@console/app/src/components/data-view/ConsoleDataView'; import { TableProps } from '@console/internal/components/factory'; import { LoadingBox } from '@console/internal/components/utils'; import { K8sResourceKind } from '@console/internal/module/k8s'; @@ -22,7 +19,6 @@ const ProjectHelmChartRepositoryList: React.FC = (props) => { loaded={props.loaded} label={t('helm-plugin~HelmChartRepositories')} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement data-test="project-helm-chart-repositories-list" diff --git a/frontend/packages/helm-plugin/src/components/list-page/ProjectHelmChartRepositoryRow.tsx b/frontend/packages/helm-plugin/src/components/list-page/ProjectHelmChartRepositoryRow.tsx index a05be776a3a..795d9d6e1a6 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/ProjectHelmChartRepositoryRow.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/ProjectHelmChartRepositoryRow.tsx @@ -28,7 +28,7 @@ const DisabledCell: React.FC<{ disabled?: boolean }> = ({ disabled }) => { return <>{disabled ? t('helm-plugin~True') : t('helm-plugin~False')}; }; -export const getDataViewRows: GetDataViewRows = (data, columns) => { +export const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const objReference = referenceFor(obj); const context = { [objReference]: obj }; diff --git a/frontend/packages/helm-plugin/src/components/list-page/RepositoriesList.tsx b/frontend/packages/helm-plugin/src/components/list-page/RepositoriesList.tsx index 127eb9b341a..3644a81c8b4 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/RepositoriesList.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/RepositoriesList.tsx @@ -1,9 +1,6 @@ import * as React from 'react'; import { useTranslation } from 'react-i18next'; -import { - ConsoleDataView, - initialFiltersDefault, -} from '@console/app/src/components/data-view/ConsoleDataView'; +import { ConsoleDataView } from '@console/app/src/components/data-view/ConsoleDataView'; import { TableProps } from '@console/internal/components/factory'; import { LoadingBox } from '@console/internal/components/utils'; import { K8sResourceKind } from '@console/internal/module/k8s'; @@ -22,7 +19,6 @@ const RepositoriesList: React.FC = (props) => { loaded={props.loaded} label={t('helm-plugin~HelmChartRepositories')} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement data-test="repositories-list" diff --git a/frontend/packages/helm-plugin/src/components/list-page/RepositoriesRow.tsx b/frontend/packages/helm-plugin/src/components/list-page/RepositoriesRow.tsx index 72f67dfa9ba..e4459ca7bd8 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/RepositoriesRow.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/RepositoriesRow.tsx @@ -28,7 +28,7 @@ const DisabledCell: React.FC<{ disabled?: boolean }> = ({ disabled }) => { return <>{disabled ? t('helm-plugin~True') : t('helm-plugin~False')}; }; -export const getDataViewRows: GetDataViewRows = (data, columns) => { +export const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const objReference = referenceFor(obj); const context = { [objReference]: obj }; diff --git a/frontend/public/components/RBAC/bindings.tsx b/frontend/public/components/RBAC/bindings.tsx index f7d8aa87f6b..8657c508ae5 100644 --- a/frontend/public/components/RBAC/bindings.tsx +++ b/frontend/public/components/RBAC/bindings.tsx @@ -190,7 +190,7 @@ const bindingType = (binding: BindingKind) => { return binding.metadata.namespace ? 'namespace' : 'cluster'; }; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj: binding }) => { const rowCells = { [tableColumnInfo[0].id]: { @@ -266,6 +266,8 @@ export const BindingsList: React.FCC = (props) => { return options; }, [hasCRBindings, t]); + const initialFilters = React.useMemo(() => ({ ...initialFiltersDefault, 'role-kind': [] }), []); + const additionalFilterNodes = React.useMemo( () => [ = (props) => { loaded={loaded} label={t('public~RoleBindings')} columns={columns} - initialFilters={{ ...initialFiltersDefault, 'role-kind': [] }} + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} matchesAdditionalFilters={matchesAdditionalFilters} getDataViewRows={getDataViewRows} diff --git a/frontend/public/components/RBAC/role.jsx b/frontend/public/components/RBAC/role.jsx index 80610c7e8ad..24a144e805e 100644 --- a/frontend/public/components/RBAC/role.jsx +++ b/frontend/public/components/RBAC/role.jsx @@ -280,7 +280,6 @@ const BindingsListComponent = (props) => { loaded={loaded} label={t('public~RoleBindings')} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getBindingsDataViewRows} hideColumnManagement={true} /> @@ -446,6 +445,8 @@ const RolesList = (props) => { const columns = useRolesColumns(); const roleFilterOptions = useRoleFilterOptions(); + const initialFilters = React.useMemo(() => ({ ...initialFiltersDefault, 'role-kind': [] }), []); + const additionalFilterNodes = React.useMemo( () => [ { label={t('public~Roles')} columns={columns} getDataViewRows={getDataViewRows} - initialFilters={{ ...initialFiltersDefault, 'role-kind': [] }} + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} matchesAdditionalFilters={matchesAdditionalFilters} hideColumnManagement={true} diff --git a/frontend/public/components/alert-manager.tsx b/frontend/public/components/alert-manager.tsx index b309a5ed3f2..d4e7c49499a 100644 --- a/frontend/public/components/alert-manager.tsx +++ b/frontend/public/components/alert-manager.tsx @@ -19,7 +19,6 @@ import { ListPage } from './factory/list-page'; import { cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -124,7 +123,7 @@ const tableColumnInfo = [ { id: 'nodeSelector' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj: alertManager }) => { const { metadata, spec } = alertManager; @@ -230,7 +229,6 @@ const AlertManagersList: React.FCC = ({ data, loaded, .. data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/build-config.tsx b/frontend/public/components/build-config.tsx index ea8d0b2d205..35bc815c001 100644 --- a/frontend/public/components/build-config.tsx +++ b/frontend/public/components/build-config.tsx @@ -33,7 +33,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -134,7 +133,7 @@ const tableColumnInfo = [ { id: 'actions' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; const latestBuild = obj?.latestBuild; @@ -328,7 +327,6 @@ export const BuildConfigsList: React.FCC = ({ data, loade data={buildResource} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/build.tsx b/frontend/public/components/build.tsx index 3ce89731a07..4e0e24b4e85 100644 --- a/frontend/public/components/build.tsx +++ b/frontend/public/components/build.tsx @@ -34,7 +34,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -358,7 +357,7 @@ const tableColumnInfo = [ { id: 'actions' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; const kindReference = referenceFor(obj); @@ -466,7 +465,6 @@ export const BuildsList: React.FCC = ({ data, loaded, ...props data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/cluster-settings/cluster-operator.tsx b/frontend/public/components/cluster-settings/cluster-operator.tsx index 93aca651a18..6c3272143eb 100644 --- a/frontend/public/components/cluster-settings/cluster-operator.tsx +++ b/frontend/public/components/cluster-settings/cluster-operator.tsx @@ -185,6 +185,7 @@ export const ClusterOperatorList: React.FC = ({ }) => { const { t } = useTranslation(); const columns = useClusterOperatorColumns(); + const clusterOperatorStatusFilterOptions = React.useMemo(() => { return [ { @@ -213,6 +214,9 @@ export const ClusterOperatorList: React.FC = ({ }, ]; }, [t]); + + const initialFilters = React.useMemo(() => ({ ...initialFiltersDefault, status: [] }), []); + const additionalFilterNodes = React.useMemo( () => [ = ({ ], [t, clusterOperatorStatusFilterOptions], ); + const matchesAdditionalFilters = React.useCallback( (resource: ClusterOperator, filters: ClusterOperatorFilters) => filters.status.length === 0 || filters.status.includes(getClusterOperatorStatus(resource)), @@ -239,7 +244,7 @@ export const ClusterOperatorList: React.FC = ({ data={data} loaded={loaded} columns={columns} - initialFilters={{ ...initialFiltersDefault, status: [] }} + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} matchesAdditionalFilters={matchesAdditionalFilters} getDataViewRows={getClusterOperatorDataViewRows} diff --git a/frontend/public/components/cluster-settings/related-objects.tsx b/frontend/public/components/cluster-settings/related-objects.tsx index cb8572c0a25..4fe7419316d 100644 --- a/frontend/public/components/cluster-settings/related-objects.tsx +++ b/frontend/public/components/cluster-settings/related-objects.tsx @@ -12,7 +12,6 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { getNameCellProps, cellIsStickyProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { @@ -140,7 +139,6 @@ const RelatedObjects: React.FC = ({ data }) => { data={data} loaded={true} columns={columns} - initialFilters={initialFiltersDefault} getObjectMetadata={getObjectMetadata} getDataViewRows={getRelatedObjectsDataViewRows} customRowData={customRowData} diff --git a/frontend/public/components/configmap.tsx b/frontend/public/components/configmap.tsx index 765fc765e75..33219f1ec42 100644 --- a/frontend/public/components/configmap.tsx +++ b/frontend/public/components/configmap.tsx @@ -19,7 +19,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -37,7 +36,7 @@ const tableColumnInfo = [ { id: 'actions' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj: configMap }) => { const { name, namespace } = configMap.metadata; @@ -138,7 +137,6 @@ export const ConfigMaps: React.FCC = ({ data, loaded, ...props data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/control-plane-machine-set.tsx b/frontend/public/components/control-plane-machine-set.tsx index be9bce909f8..1b584dd49e7 100644 --- a/frontend/public/components/control-plane-machine-set.tsx +++ b/frontend/public/components/control-plane-machine-set.tsx @@ -20,7 +20,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -277,7 +276,7 @@ export const MachinesCell: React.FCC = ({ ); }; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; const desiredReplicas = getDesiredReplicas(obj); @@ -335,14 +334,13 @@ const ControlPlaneMachineSetList: React.FC = ({ return ( }> - + {...props} label={ControlPlaneMachineSetModel.labelPlural} data={data} loaded={loaded} loadError={loadError} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/cron-job.tsx b/frontend/public/components/cron-job.tsx index 47ac691c375..e97b4e8b543 100644 --- a/frontend/public/components/cron-job.tsx +++ b/frontend/public/components/cron-job.tsx @@ -40,7 +40,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -91,7 +90,7 @@ const BooleanDisplay: React.FCC<{ value?: boolean }> = ({ value }) => { return value ? t('public~True') : t('public~False'); }; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj: cronjob }) => { const { name, namespace } = cronjob.metadata; const resourceKind = referenceFor(cronjob); @@ -378,7 +377,6 @@ export const CronJobsList: React.FCC = ({ data, loaded, ...pr data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/custom-resource-definition.tsx b/frontend/public/components/custom-resource-definition.tsx index f74d19531ac..56a5dfd466a 100644 --- a/frontend/public/components/custom-resource-definition.tsx +++ b/frontend/public/components/custom-resource-definition.tsx @@ -58,7 +58,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -284,10 +283,7 @@ const IsNamespaced: React.FCC<{ obj: CustomResourceDefinitionKind }> = ({ obj }) return namespaced(obj) ? t('public~Yes') : t('public~No'); }; -const getDataViewRows: GetDataViewRows = ( - data, - columns, -) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; const displayName = _.get(obj, 'spec.names.kind'); @@ -352,7 +348,6 @@ export const CustomResourceDefinitionsList: React.FCC diff --git a/frontend/public/components/daemon-set.tsx b/frontend/public/components/daemon-set.tsx index fc5f566008b..e477d0c1b3f 100644 --- a/frontend/public/components/daemon-set.tsx +++ b/frontend/public/components/daemon-set.tsx @@ -6,10 +6,7 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import PodRing from '@console/shared/src/components/pod/PodRing'; import { usePodsWatcher } from '@console/shared/src/hooks/usePodsWatcher'; import { usePrometheusGate } from '@console/shared/src/hooks/usePrometheusGate'; -import { - initialFiltersDefault, - ConsoleDataView, -} from '@console/app/src/components/data-view/ConsoleDataView'; +import { ConsoleDataView } from '@console/app/src/components/data-view/ConsoleDataView'; import { useWorkloadColumns, getWorkloadDataViewRows } from './workload-table'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; import { useTranslation } from 'react-i18next'; @@ -32,7 +29,7 @@ import { VolumesTable } from './volumes-table'; const kind = referenceForModel(DaemonSetModel); -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return getWorkloadDataViewRows(data, columns, DaemonSetModel); }; @@ -126,7 +123,6 @@ export const DaemonSetsList: React.FCC = ({ data, loaded, . data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/default-resource.tsx b/frontend/public/components/default-resource.tsx index 1cfa5c05653..da7a1667925 100644 --- a/frontend/public/components/default-resource.tsx +++ b/frontend/public/components/default-resource.tsx @@ -36,7 +36,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { @@ -166,7 +165,7 @@ export const DetailsForKind: React.FC> = ({ }; const getDataViewRows = ( - data: RowProps[], + data: RowProps[], columns: ConsoleDataViewColumn[], additionalPrinterColumns: CRDAdditionalPrinterColumn[], kinds: string[], @@ -342,7 +341,6 @@ export const DefaultList: React.FC = (props) = data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={(dvData, dvColumns) => getDataViewRows( dvData, diff --git a/frontend/public/components/deployment-config.tsx b/frontend/public/components/deployment-config.tsx index 19c0d7e500a..68d9df4eb34 100644 --- a/frontend/public/components/deployment-config.tsx +++ b/frontend/public/components/deployment-config.tsx @@ -20,10 +20,7 @@ import { ResourceEventStream } from './events'; import { VolumesTable } from './volumes-table'; import { DetailsPage } from './factory/details'; import { ListPage } from './factory/list-page'; -import { - initialFiltersDefault, - ConsoleDataView, -} from '@console/app/src/components/data-view/ConsoleDataView'; +import { ConsoleDataView } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; import { LoadingBox } from './utils/status-box'; @@ -299,7 +296,7 @@ const DeploymentConfigTableHeader = () => { }; DeploymentConfigTableHeader.displayName = 'DeploymentConfigTableHeader'; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return getWorkloadDataViewRows(data, columns, DeploymentConfigModel); }; @@ -318,7 +315,6 @@ export const DeploymentConfigsList: React.FCC = ({ data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/deployment.tsx b/frontend/public/components/deployment.tsx index d7df95effff..e8a97b3d157 100644 --- a/frontend/public/components/deployment.tsx +++ b/frontend/public/components/deployment.tsx @@ -26,10 +26,7 @@ import { ResourceEventStream } from './events'; import { DetailsPage } from './factory/details'; import { ListPage } from './factory/list-page'; import { ReplicaSetsPage } from './replicaset'; -import { - initialFiltersDefault, - ConsoleDataView, -} from '@console/app/src/components/data-view/ConsoleDataView'; +import { ConsoleDataView } from '@console/app/src/components/data-view/ConsoleDataView'; import { LoadingBox } from './utils/status-box'; import { AsyncComponent } from './utils/async'; import { ContainerTable } from './utils/container-table'; @@ -223,7 +220,7 @@ const DeploymentTableHeader = () => { }; DeploymentTableHeader.displayName = 'DeploymentTableHeader'; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return getWorkloadDataViewRows(data, columns, DeploymentModel); }; @@ -238,7 +235,6 @@ export const DeploymentsList: React.FCC = ({ data, loaded, data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} /> diff --git a/frontend/public/components/group.tsx b/frontend/public/components/group.tsx index 369ad0d8ad5..4be6b25f802 100644 --- a/frontend/public/components/group.tsx +++ b/frontend/public/components/group.tsx @@ -23,26 +23,17 @@ import { useWarningModal } from '@console/shared/src/hooks/useWarningModal'; import { k8sPatchResource } from '@console/dynamic-plugin-sdk/src/utils/k8s'; import { ConsoleDataView, - initialFiltersDefault, getNameCellProps, actionsCellProps, cellIsStickyProps, } from '@console/app/src/components/data-view/ConsoleDataView'; import { TableColumn, K8sResourceKind } from '@console/internal/module/k8s'; -import { - ConsoleDataViewColumn, - ConsoleDataViewRow, - GetDataViewRows, -} from '@console/app/src/components/data-view/types'; -import { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import { GetDataViewRows } from '@console/app/src/components/data-view/types'; import { DASH } from '@console/shared/src/constants/ui'; const tableColumnInfo = [{ id: 'name' }, { id: 'users' }, { id: 'created' }, { id: 'actions' }]; -const getDataViewRows: GetDataViewRows = ( - data: RowProps[], - columns: ConsoleDataViewColumn[], -): ConsoleDataViewRow[] => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { metadata } = obj; const resourceKind = referenceForModel(GroupModel); @@ -137,7 +128,6 @@ export const GroupList: React.FC<{ data: GroupKind[]; loaded: boolean }> = (prop loaded={loaded} label={t('public~Groups')} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/hpa.tsx b/frontend/public/components/hpa.tsx index 39d63670588..769453026c4 100644 --- a/frontend/public/components/hpa.tsx +++ b/frontend/public/components/hpa.tsx @@ -28,7 +28,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -264,10 +263,7 @@ const tableColumnInfo = [ { id: '' }, ]; -const getDataViewRows: GetDataViewRows = ( - data, - columns, -) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; @@ -403,7 +399,6 @@ export const HorizontalPodAutoscalersList: React.FCC diff --git a/frontend/public/components/image-stream.tsx b/frontend/public/components/image-stream.tsx index 69c7df5b037..67cfe326d81 100644 --- a/frontend/public/components/image-stream.tsx +++ b/frontend/public/components/image-stream.tsx @@ -28,7 +28,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -347,7 +346,7 @@ const tableColumnInfo = [ { id: 'actions' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj: imageStream }) => { const { name, namespace, labels, creationTimestamp } = imageStream.metadata; @@ -443,7 +442,6 @@ export const ImageStreamsList: React.FCC = ({ data, loade data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/job.tsx b/frontend/public/components/job.tsx index 9e44112227d..bd6c0e3a16e 100644 --- a/frontend/public/components/job.tsx +++ b/frontend/public/components/job.tsx @@ -44,7 +44,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -76,7 +75,7 @@ const Completions: React.FCC = ({ obj, completions }) => { ); }; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; const { type, completions } = getJobTypeAndCompletions(obj); @@ -317,7 +316,6 @@ const JobsList: React.FCC = ({ data, loaded, ...props }) => { data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/limit-range.tsx b/frontend/public/components/limit-range.tsx index af9111d6f81..ab81fafedaf 100644 --- a/frontend/public/components/limit-range.tsx +++ b/frontend/public/components/limit-range.tsx @@ -16,18 +16,12 @@ import { Grid, GridItem } from '@patternfly/react-core'; import { Table, Thead, Tbody, Tr, Th, Td } from '@patternfly/react-table'; import { ConsoleDataView, - initialFiltersDefault, getNameCellProps, actionsCellProps, cellIsStickyProps, } from '@console/app/src/components/data-view/ConsoleDataView'; import { TableColumn } from '@console/internal/module/k8s'; -import { - ConsoleDataViewColumn, - ConsoleDataViewRow, - GetDataViewRows, -} from '@console/app/src/components/data-view/types'; -import { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import { GetDataViewRows } from '@console/app/src/components/data-view/types'; import { DASH } from '@console/shared/src/constants/ui'; import LazyActionMenu from '@console/shared/src/components/actions/LazyActionMenu'; @@ -35,10 +29,7 @@ const LimitRangeReference: K8sResourceKindReference = LimitRangeModel.kind; const tableColumnInfo = [{ id: 'name' }, { id: 'namespace' }, { id: 'created' }, { id: 'actions' }]; -const getDataViewRows: GetDataViewRows = ( - data: RowProps[], - columns: ConsoleDataViewColumn[], -): ConsoleDataViewRow[] => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace, creationTimestamp } = obj.metadata; @@ -123,7 +114,6 @@ export const LimitRangeList: React.FC<{ data: K8sResourceKind[]; loaded: boolean loaded={loaded} label={LimitRangeModel.labelPlural} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/machine-autoscaler.tsx b/frontend/public/components/machine-autoscaler.tsx index de2241c4367..47d9458947d 100644 --- a/frontend/public/components/machine-autoscaler.tsx +++ b/frontend/public/components/machine-autoscaler.tsx @@ -9,7 +9,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -62,7 +61,7 @@ const tableColumnInfo = [ { id: '' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; @@ -174,7 +173,6 @@ const MachineAutoscalerList: React.FC = ({ loaded={loaded} loadError={loadError} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/machine-config-pool.tsx b/frontend/public/components/machine-config-pool.tsx index 2c7369a0876..7fb76e66cf6 100644 --- a/frontend/public/components/machine-config-pool.tsx +++ b/frontend/public/components/machine-config-pool.tsx @@ -21,7 +21,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -414,7 +413,6 @@ const MachineConfigPoolList: React.FC = ({ loaded={loaded} loadError={loadError} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/machine-config.tsx b/frontend/public/components/machine-config.tsx index 634d8d255ab..4aff16a57b0 100644 --- a/frontend/public/components/machine-config.tsx +++ b/frontend/public/components/machine-config.tsx @@ -22,7 +22,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -140,7 +139,7 @@ const tableColumnInfo = [ { id: '' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name } = obj.metadata; @@ -269,7 +268,6 @@ const MachineConfigList: React.FC = ({ loaded={loaded} loadError={loadError} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/machine-health-check.tsx b/frontend/public/components/machine-health-check.tsx index 4fade464c22..58cb27378cb 100644 --- a/frontend/public/components/machine-health-check.tsx +++ b/frontend/public/components/machine-health-check.tsx @@ -24,7 +24,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -34,7 +33,7 @@ const machineHealthCheckReference = referenceForModel(MachineHealthCheckModel); const tableColumnInfo = [{ id: 'name' }, { id: 'namespace' }, { id: 'created' }, { id: '' }]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; @@ -124,7 +123,6 @@ const MachineHealthCheckList: React.FC = ({ loaded={loaded} loadError={loadError} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/machine-set.tsx b/frontend/public/components/machine-set.tsx index de4228eda59..7471fc3054f 100644 --- a/frontend/public/components/machine-set.tsx +++ b/frontend/public/components/machine-set.tsx @@ -9,7 +9,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { @@ -422,7 +421,6 @@ const MachineSetListContent: React.FCC = ({ loaded={loaded} loadError={loadError} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/machine.tsx b/frontend/public/components/machine.tsx index 6818a554ba7..6c4fa5add39 100644 --- a/frontend/public/components/machine.tsx +++ b/frontend/public/components/machine.tsx @@ -33,7 +33,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { @@ -283,7 +282,6 @@ export const MachineList: React.FC = ({ data, loaded, loadErro loaded={loaded} loadError={loadError} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/monitoring/alertmanager/alertmanager-config.tsx b/frontend/public/components/monitoring/alertmanager/alertmanager-config.tsx index 0078eac8e02..2912af3470f 100644 --- a/frontend/public/components/monitoring/alertmanager/alertmanager-config.tsx +++ b/frontend/public/components/monitoring/alertmanager/alertmanager-config.tsx @@ -43,7 +43,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { @@ -479,7 +478,6 @@ const ReceiversTable: React.FC = (props) => { data={data} loaded={true} columns={columns} - initialFilters={initialFiltersDefault} getObjectMetadata={getObjectMetadata} getDataViewRows={getReceiverDataViewRows} customRowData={customRowData} diff --git a/frontend/public/components/namespace.jsx b/frontend/public/components/namespace.jsx index 706cd20b978..dc65c259bf9 100644 --- a/frontend/public/components/namespace.jsx +++ b/frontend/public/components/namespace.jsx @@ -422,6 +422,8 @@ export const NamespacesList = (props) => { [t], ); + const initialFilters = useMemo(() => ({ ...initialFiltersDefault, requester: [] }), []); + const additionalFilterNodes = useMemo( () => [ { columns={columns} columnLayout={columnLayout} columnManagementID={NamespacesColumnManagementID} - initialFilters={{ ...initialFiltersDefault, requester: [] }} + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} matchesAdditionalFilters={matchesAdditionalFilters} getDataViewRows={(rowData, tableColumns) => @@ -802,6 +804,8 @@ export const ProjectList = (props) => { [t], ); + const initialFilters = useMemo(() => ({ ...initialFiltersDefault, requester: [] }), []); + const additionalFilterNodes = useMemo( () => [ { columns={columns} columnLayout={columnLayout} columnManagementID={projectColumnManagementID} - initialFilters={{ ...initialFiltersDefault, requester: [] }} + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} matchesAdditionalFilters={matchesAdditionalFilters} getDataViewRows={(rowData, tableColumns) => diff --git a/frontend/public/components/pod-list.tsx b/frontend/public/components/pod-list.tsx index 0c8bd1146ed..2bd17415e22 100644 --- a/frontend/public/components/pod-list.tsx +++ b/frontend/public/components/pod-list.tsx @@ -448,10 +448,13 @@ export const PodList: FC = ({ }) => { const { t } = useTranslation(); const columns = usePodsColumns(showNodes); + const podMetrics = useSelector(({ UI }) => { return UI.getIn(['metrics', 'pod']); }); + const columnManagementID = referenceForModel(PodModel); + const columnLayout = useMemo( () => ({ id: columnManagementID, @@ -469,6 +472,7 @@ export const PodList: FC = ({ }), [columns, columnManagementID, selectedColumns, showNamespaceOverride, t], ); + const podStatusFilterOptions = useMemo( () => [ { @@ -505,6 +509,8 @@ export const PodList: FC = ({ [t], ); + const initialFilters = useMemo(() => ({ ...initialFiltersDefault, status: [] }), []); + const additionalFilterNodes = useMemo( () => [ = ({ ], [t, podStatusFilterOptions], ); + const matchesAdditionalFilters = useCallback( (resource: PodKind, filters: PodFilters) => filters.status.length === 0 || @@ -540,7 +547,7 @@ export const PodList: FC = ({ columns={columns} columnLayout={columnLayout} columnManagementID={columnManagementID} - initialFilters={{ ...initialFiltersDefault, status: [] }} + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} matchesAdditionalFilters={matchesAdditionalFilters} getDataViewRows={(rowData, tableColumns) => diff --git a/frontend/public/components/prometheus.tsx b/frontend/public/components/prometheus.tsx index 3b5b943d964..248ad812b21 100644 --- a/frontend/public/components/prometheus.tsx +++ b/frontend/public/components/prometheus.tsx @@ -12,18 +12,12 @@ import { referenceForModel, referenceFor, K8sResourceKind } from '../module/k8s' import LazyActionMenu from '@console/shared/src/components/actions/LazyActionMenu'; import { ConsoleDataView, - initialFiltersDefault, getNameCellProps, actionsCellProps, cellIsStickyProps, } from '@console/app/src/components/data-view/ConsoleDataView'; import { TableColumn } from '@console/internal/module/k8s'; -import { - ConsoleDataViewColumn, - ConsoleDataViewRow, - GetDataViewRows, -} from '@console/app/src/components/data-view/types'; -import { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import { GetDataViewRows } from '@console/app/src/components/data-view/types'; import { DASH } from '@console/shared/src/constants/ui'; const tableColumnInfo = [ @@ -35,10 +29,7 @@ const tableColumnInfo = [ { id: 'actions' }, ]; -const getDataViewRows: GetDataViewRows = ( - data: RowProps[], - columns: ConsoleDataViewColumn[], -): ConsoleDataViewRow[] => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { metadata, spec } = obj; const resourceKind = referenceFor(obj); @@ -167,7 +158,6 @@ export const PrometheusInstancesList: React.FC<{ data: K8sResourceKind[]; loaded loaded={loaded} label={PrometheusModel.labelPlural} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/replicaset.jsx b/frontend/public/components/replicaset.jsx index a2d6d50d498..3ac6915138f 100644 --- a/frontend/public/components/replicaset.jsx +++ b/frontend/public/components/replicaset.jsx @@ -39,7 +39,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; @@ -276,7 +275,6 @@ const ReplicaSetsList = ({ data, loaded, ...props }) => { data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/replication-controller.jsx b/frontend/public/components/replication-controller.jsx index 5716e53d6e5..4538fd7d65f 100644 --- a/frontend/public/components/replication-controller.jsx +++ b/frontend/public/components/replication-controller.jsx @@ -34,7 +34,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; @@ -291,7 +290,6 @@ const ReplicationControllersList = ({ data, loaded, ...props }) => { data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/resource-quota.jsx b/frontend/public/components/resource-quota.jsx index 61383b66214..463515481c4 100644 --- a/frontend/public/components/resource-quota.jsx +++ b/frontend/public/components/resource-quota.jsx @@ -50,7 +50,6 @@ import { } from '@patternfly/react-core'; import { ConsoleDataView, - initialFiltersDefault, getNameCellProps, actionsCellProps, cellIsStickyProps, @@ -651,7 +650,6 @@ export const ResourceQuotasList = (props) => { loaded={loaded} label={ResourceQuotaModel.labelPlural} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={(dvData, dvColumns) => getResourceQuotaDataViewRows(dvData, dvColumns, namespace) } @@ -731,7 +729,6 @@ export const AppliedClusterResourceQuotasList = (props) => { loaded={loaded} label={AppliedClusterResourceQuotaModel.labelPlural} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={(dvData, dvColumns) => getAppliedClusterResourceQuotaDataViewRows(dvData, dvColumns, namespace) } diff --git a/frontend/public/components/secret.tsx b/frontend/public/components/secret.tsx index 48602bdfafc..6c34557e7b2 100644 --- a/frontend/public/components/secret.tsx +++ b/frontend/public/components/secret.tsx @@ -29,7 +29,6 @@ import { actionsCellProps, cellIsStickyProps, getNameCellProps, - initialFiltersDefault, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; @@ -50,7 +49,7 @@ const tableColumnInfo = [ { id: 'actions' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj }) => { const { name, namespace } = obj.metadata; const resourceKind = referenceFor(obj); @@ -191,7 +190,6 @@ const SecretsList: React.FCC = ({ data, loaded, ...props }) => data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/service-account.jsx b/frontend/public/components/service-account.jsx index 8176da33996..6feae021614 100644 --- a/frontend/public/components/service-account.jsx +++ b/frontend/public/components/service-account.jsx @@ -11,7 +11,6 @@ import { Timestamp } from '@console/shared/src/components/datetime/Timestamp'; import { Grid, GridItem } from '@patternfly/react-core'; import { ConsoleDataView, - initialFiltersDefault, getNameCellProps, actionsCellProps, cellIsStickyProps, @@ -156,7 +155,6 @@ const ServiceAccountsList = (props) => { loaded={loaded} label={t('public~ServiceAccounts')} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/service-monitor.jsx b/frontend/public/components/service-monitor.jsx index feb67f1cc91..c7821c8143d 100644 --- a/frontend/public/components/service-monitor.jsx +++ b/frontend/public/components/service-monitor.jsx @@ -11,7 +11,6 @@ import { referenceForModel } from '../module/k8s'; import { useTranslation } from 'react-i18next'; import { ConsoleDataView, - initialFiltersDefault, getNameCellProps, actionsCellProps, cellIsStickyProps, @@ -160,7 +159,6 @@ export const ServiceMonitorsList = (props) => { loaded={loaded} label={ServiceMonitorModel.labelPlural} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getServiceMonitorDataViewRows} hideColumnManagement={true} /> diff --git a/frontend/public/components/stateful-set.tsx b/frontend/public/components/stateful-set.tsx index 6117bf44dc6..9b6324ac336 100644 --- a/frontend/public/components/stateful-set.tsx +++ b/frontend/public/components/stateful-set.tsx @@ -20,10 +20,7 @@ import { LoadingBox } from './utils/status-box'; import { VolumesTable } from './volumes-table'; import { PodDisruptionBudgetField } from '@console/app/src/components/pdb/PodDisruptionBudgetField'; import { DescriptionList, Grid, GridItem } from '@patternfly/react-core'; -import { - initialFiltersDefault, - ConsoleDataView, -} from '@console/app/src/components/data-view/ConsoleDataView'; +import { ConsoleDataView } from '@console/app/src/components/data-view/ConsoleDataView'; import { StatefulSetModel } from '../models'; import { useWorkloadColumns, getWorkloadDataViewRows } from './workload-table'; @@ -86,7 +83,6 @@ const StatefulSetsList: React.FCC = ({ data, loaded, ...p data={data} loaded={loaded} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={(dvData, dvColumns) => getWorkloadDataViewRows(dvData, dvColumns, StatefulSetModel) } diff --git a/frontend/public/components/template-instance.tsx b/frontend/public/components/template-instance.tsx index 2d771e4bb97..7023401b48d 100644 --- a/frontend/public/components/template-instance.tsx +++ b/frontend/public/components/template-instance.tsx @@ -146,6 +146,7 @@ export const TemplateInstanceList: React.FC = ({ }) => { const { t } = useTranslation(); const columns = useTemplateInstanceColumns(); + const templateInstanceStatusFilterOptions = React.useMemo(() => { return [ { @@ -162,6 +163,9 @@ export const TemplateInstanceList: React.FC = ({ }, ]; }, [t]); + + const initialFilters = React.useMemo(() => ({ ...initialFiltersDefault, status: [] }), []); + const additionalFilterNodes = React.useMemo( () => [ = ({ ], [t, templateInstanceStatusFilterOptions], ); + const matchesAdditionalFilters = React.useCallback( (resource: TemplateInstanceKind, filters: TemplateInstanceFilters) => filters.status.length === 0 || filters.status.includes(getTemplateInstanceStatus(resource)), @@ -188,7 +193,7 @@ export const TemplateInstanceList: React.FC = ({ data={data} loaded={loaded} columns={columns} - initialFilters={{ ...initialFiltersDefault, status: [] }} + initialFilters={initialFilters} additionalFilterNodes={additionalFilterNodes} matchesAdditionalFilters={matchesAdditionalFilters} getDataViewRows={getTemplateInstanceDataViewRows} diff --git a/frontend/public/components/user.tsx b/frontend/public/components/user.tsx index 42146728e21..12ea86c347c 100644 --- a/frontend/public/components/user.tsx +++ b/frontend/public/components/user.tsx @@ -25,7 +25,6 @@ import { getNameCellProps, actionsCellProps, cellIsStickyProps, - initialFiltersDefault, } from '@console/app/src/components/data-view/ConsoleDataView'; import { GetDataViewRows } from '@console/app/src/components/data-view/types'; import { useCanEditIdentityProviders, useOAuthData } from '@console/shared/src/hooks/oauth'; @@ -41,7 +40,7 @@ const tableColumnInfo = [ { id: 'actions' }, ]; -const getDataViewRows: GetDataViewRows = (data, columns) => { +const getDataViewRows: GetDataViewRows = (data, columns) => { return data.map(({ obj: user }) => { const rowCells = { [tableColumnInfo[0].id]: { @@ -178,7 +177,6 @@ export const UserList: React.FCC = (props) => { loaded={loaded} label={t('public~Users')} columns={columns} - initialFilters={initialFiltersDefault} getDataViewRows={getDataViewRows} hideColumnManagement={true} />