Skip to content

Commit 2bd6fca

Browse files
committed
fix(broker-configs): set isReadOnly as a prop
1 parent b37888b commit 2bd6fca

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

frontend/src/components/Brokers/Broker/Configs/TableComponents/InputCell/InputCellViewMode.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ interface InputCellViewModeProps {
1414
onEdit: () => void;
1515
isDynamic: boolean;
1616
isSensitive: boolean;
17+
isReadOnly: boolean;
1718
}
1819

1920
const InputCellViewMode: FC<InputCellViewModeProps> = ({
@@ -22,15 +23,14 @@ const InputCellViewMode: FC<InputCellViewModeProps> = ({
2223
onEdit,
2324
isDynamic,
2425
isSensitive,
26+
isReadOnly
2527
}) => {
2628
const { displayValue, title } = getConfigDisplayValue(
2729
isSensitive,
2830
value,
2931
unit
3032
);
3133

32-
const { isReadOnly } = useContext(ClusterContext);
33-
3434
return (
3535
<S.ValueWrapper $isDynamic={isDynamic}>
3636
<S.Value title={title}>{displayValue}</S.Value>

frontend/src/components/Brokers/Broker/Configs/TableComponents/InputCell/__test__/InputCellViewMode.spec.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import React, { useContext } from 'react';
1+
import React from 'react';
22
import { screen } from '@testing-library/react';
33
import userEvent from '@testing-library/user-event';
44
import { render } from 'lib/testHelpers';
55
import InputCellViewMode from 'components/Brokers/Broker/Configs/TableComponents/InputCell/InputCellViewMode';
6-
import ClusterContext from 'components/contexts/ClusterContext';
76

87
describe('InputCellViewMode', () => {
98
const mockOnEdit = jest.fn();
@@ -17,6 +16,7 @@ describe('InputCellViewMode', () => {
1716
onEdit={mockOnEdit}
1817
isDynamic
1918
isSensitive={false}
19+
isReadOnly={false}
2020
/>
2121
);
2222
expect(screen.getByTitle(value)).toBeInTheDocument();
@@ -30,6 +30,7 @@ describe('InputCellViewMode', () => {
3030
onEdit={mockOnEdit}
3131
isDynamic
3232
isSensitive
33+
isReadOnly={false}
3334
/>
3435
);
3536
expect(screen.getByTitle('Sensitive Value')).toBeInTheDocument();
@@ -45,22 +46,22 @@ describe('InputCellViewMode', () => {
4546
onEdit={mockOnEdit}
4647
isDynamic
4748
isSensitive={false}
49+
isReadOnly={false}
4850
/>
4951
);
5052
await user.click(screen.getByLabelText('editAction'));
5153
expect(mockOnEdit).toHaveBeenCalled();
5254
});
5355

5456
it('disables edit button for read-only properties', () => {
55-
const cluster = useContext(ClusterContext);
56-
cluster.isReadOnly = true;
5757
render(
5858
<InputCellViewMode
5959
value={value}
6060
unit={undefined}
6161
onEdit={mockOnEdit}
6262
isDynamic
6363
isSensitive={false}
64+
isReadOnly
6465
/>
6566
);
6667
expect(screen.getByLabelText('editAction')).toBeDisabled();

frontend/src/components/Brokers/Broker/Configs/TableComponents/InputCell/index.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { type FC, useState } from 'react';
1+
import React, { type FC, useState, useContext } from 'react';
22
import { useConfirm } from 'lib/hooks/useConfirm';
33
import { type CellContext } from '@tanstack/react-table';
44
import { type BrokerConfig } from 'generated-sources';
@@ -10,6 +10,7 @@ import { getConfigUnit } from 'components/Brokers/Broker/Configs/lib/utils';
1010

1111
import InputCellViewMode from './InputCellViewMode';
1212
import InputCellEditMode from './InputCellEditMode';
13+
import ClusterContext from 'components/contexts/ClusterContext';
1314

1415
export interface InputCellProps
1516
extends CellContext<BrokerConfigsTableRow, BrokerConfig['value']> {
@@ -32,6 +33,7 @@ const InputCell: FC<InputCellProps> = ({ row, onUpdate }) => {
3233

3334
const isDynamic = source === 'DYNAMIC_BROKER_CONFIG';
3435
const configUnit = getConfigUnit(name);
36+
const { isReadOnly } = useContext(ClusterContext);
3537

3638
return isEdit ? (
3739
<InputCellEditMode
@@ -46,6 +48,7 @@ const InputCell: FC<InputCellProps> = ({ row, onUpdate }) => {
4648
onEdit={() => setIsEdit(true)}
4749
isDynamic={isDynamic}
4850
isSensitive={isSensitive}
51+
isReadOnly={isReadOnly}
4952
/>
5053
);
5154
};

frontend/src/components/Brokers/Broker/Configs/lib/utils.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { useContext } from 'react';
22
import { type BrokerConfig, ConfigSource } from 'generated-sources';
33
import { createColumnHelper } from '@tanstack/react-table';
44
import * as BrokerConfigTableComponents from 'components/Brokers/Broker/Configs/TableComponents/index';
@@ -10,6 +10,7 @@ import type {
1010
UpdateBrokerConfigCallback,
1111
} from './types';
1212
import { CONFIG_SOURCE_NAME_MAP, CONFIG_SOURCE_PRIORITY } from './constants';
13+
import ClusterContext from 'components/contexts/ClusterContext';
1314

1415
const getConfigFieldMatch = (field: string, query: string) =>
1516
field.toLocaleLowerCase().includes(query.toLocaleLowerCase());

0 commit comments

Comments
 (0)