Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/containers/Nodes/NodesControls/NodesControls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export function NodesControls({
handleUptimeFilterChange,
handlePeerRoleFilterChange,
handleGroupByParamChange,
} = useNodesPageQueryParams(groupByParams);
} = useNodesPageQueryParams(groupByParams, withPeerRoleFilter);
const {problemFilter, handleProblemFilterChange} = useProblemFilter();
const isViewerUser = useIsViewerUser();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,10 @@ export function GroupedNodesComponent({
selectedColumnsKey,
groupByParams,
}: GroupedNodesComponentProps) {
const {searchValue, peerRoleFilter, groupByParam} = useNodesPageQueryParams(groupByParams);
const {searchValue, peerRoleFilter, groupByParam} = useNodesPageQueryParams(
groupByParams,
withPeerRoleFilter,
);
const [autoRefreshInterval] = useAutoRefreshInterval();

const {columnsToShow, columnsToSelect, setColumns} = useSelectedColumns(
Expand Down
5 changes: 4 additions & 1 deletion src/containers/Nodes/PaginatedNodes/NodesComponent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,10 @@ export function NodesComponent({
selectedColumnsKey,
groupByParams,
}: NodesComponentProps) {
const {searchValue, uptimeFilter, peerRoleFilter} = useNodesPageQueryParams(groupByParams);
const {searchValue, uptimeFilter, peerRoleFilter} = useNodesPageQueryParams(
groupByParams,
withPeerRoleFilter,
);
const {problemFilter} = useProblemFilter();
const viewerNodesHandlerHasGrouping = useViewerNodesHandlerHasGrouping();

Expand Down
1 change: 1 addition & 0 deletions src/containers/Nodes/PaginatedNodes/PaginatedNodes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ export interface PaginatedNodesProps {
export function PaginatedNodes(props: PaginatedNodesProps) {
const {uptimeFilter, groupByParam, handleUptimeFilterChange} = useNodesPageQueryParams(
props.groupByParams,
props.withPeerRoleFilter,
);

const {problemFilter, handleProblemFilterChange} = useProblemFilter();
Expand Down
7 changes: 5 additions & 2 deletions src/containers/Nodes/PeerRoleFilter/utils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ export const NODES_PEER_ROLES_TITLES: Record<NodesPeerRole, string> = {
},
};

export function parseNodesPeerRoleFilter(paramToParse: unknown): NodesPeerRole | undefined {
return NODES_PEER_ROLES.find((peerRoleParam) => peerRoleParam === paramToParse);
export function parseNodesPeerRoleFilter(
paramToParse: unknown,
defaultValue?: NodesPeerRole,
): NodesPeerRole | undefined {
return NODES_PEER_ROLES.find((peerRoleParam) => peerRoleParam === paramToParse) ?? defaultValue;
}
17 changes: 13 additions & 4 deletions src/containers/Nodes/useNodesPageQueryParams.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ import {nodesUptimeFilterValuesSchema} from '../../utils/nodes';
import {parseNodesPeerRoleFilter} from './PeerRoleFilter/utils';
import {parseNodesGroupByParam} from './columns/constants';

export function useNodesPageQueryParams(groupByParams: NodesGroupByField[] | undefined) {
export function useNodesPageQueryParams(
groupByParams: NodesGroupByField[] | undefined,
withPeerRoleFilter: boolean | undefined,
) {
const [queryParams, setQueryParams] = useQueryParams({
uptimeFilter: StringParam,
peerRole: StringParam,
Expand All @@ -21,9 +24,15 @@ export function useNodesPageQueryParams(groupByParams: NodesGroupByField[] | und

const uptimeFilter = nodesUptimeFilterValuesSchema.parse(queryParams.uptimeFilter);
const searchValue = queryParams.search ?? '';
const peerRoleFilter = isViewerUser
? parseNodesPeerRoleFilter(queryParams.peerRole)
: 'database';

let peerRoleFilter: NodesPeerRole | undefined;

// Do not add peerRoleFilter on Cluster page Network tab
if (withPeerRoleFilter) {
peerRoleFilter = isViewerUser
? parseNodesPeerRoleFilter(queryParams.peerRole, 'database')
: 'database';
}

const systemStateGroupingAvailable = useViewerNodesHandlerHasGroupingBySystemState();
const groupByParam = parseNodesGroupByParam(
Expand Down
Loading