Skip to content

Commit d15d6b1

Browse files
authored
fix: Hide "Append Command" button when viewing partition aware table in iframe UI (#1495)
* Currently, viewing a partition aware table in the iframe UI will show the "Append Command" button even though there is no console session to append the command to. * Changed the partition selector to only render the "Append Command" button when no `onPartitionAppend` prop is provided to IrisGrid. The "Append Command" button should now be available in the IDE but not the iframe UI. * Resolves #1414
1 parent 848fef4 commit d15d6b1

2 files changed

Lines changed: 21 additions & 15 deletions

File tree

packages/iris-grid/src/IrisGrid.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ export interface IrisGridProps {
282282
onError: (error: unknown) => void;
283283
onDataSelected: (index: ModelIndex, map: Record<ColumnName, unknown>) => void;
284284
onStateChange: (irisGridState: IrisGridState, gridState: GridState) => void;
285-
onPartitionAppend: (partitionColumn: Column, value: string) => void;
285+
onPartitionAppend?: (partitionColumn: Column, value: string) => void;
286286
onAdvancedSettingsChange: AdvancedSettingsMenuCallback;
287287
partition: string | null;
288288
partitionColumn: Column | null;
@@ -459,7 +459,6 @@ export class IrisGrid extends Component<IrisGridProps, IrisGridState> {
459459
onDataSelected: (): void => undefined,
460460
onError: (): void => undefined,
461461
onStateChange: (): void => undefined,
462-
onPartitionAppend: (): void => undefined,
463462
onAdvancedSettingsChange: (): void => undefined,
464463
partition: null,
465464
partitionColumn: null,
@@ -2336,7 +2335,7 @@ export class IrisGrid extends Component<IrisGridProps, IrisGridState> {
23362335
if (partitionColumn == null) {
23372336
return;
23382337
}
2339-
onPartitionAppend(partitionColumn, value);
2338+
onPartitionAppend?.(partitionColumn, value);
23402339
}
23412340

23422341
handlePartitionChange(partition: string): void {
@@ -3865,6 +3864,7 @@ export class IrisGrid extends Component<IrisGridProps, IrisGridState> {
38653864
onAdvancedSettingsChange,
38663865
canDownloadCsv,
38673866
onCreateChart,
3867+
onPartitionAppend,
38683868
} = this.props;
38693869
const {
38703870
metricCalculator,
@@ -4421,7 +4421,11 @@ export class IrisGrid extends Component<IrisGridProps, IrisGridState> {
44214421
partition={partition}
44224422
onChange={this.handlePartitionChange}
44234423
onFetchAll={this.handlePartitionFetchAll}
4424-
onAppend={this.handlePartitionAppend}
4424+
onAppend={
4425+
onPartitionAppend !== undefined
4426+
? this.handlePartitionAppend
4427+
: undefined
4428+
}
44254429
onDone={this.handlePartitionDone}
44264430
/>
44274431
)}

packages/iris-grid/src/IrisGridPartitionSelector.tsx

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ interface IrisGridPartitionSelectorProps<T> {
1818
table: Table;
1919
columnName: ColumnName;
2020
partition: string;
21-
onAppend: (partition: string) => void;
21+
onAppend?: (partition: string) => void;
2222
onFetchAll: () => void;
2323
onDone: (event?: React.MouseEvent<HTMLButtonElement>) => void;
2424
onChange: (partition: string) => void;
@@ -31,7 +31,6 @@ class IrisGridPartitionSelector<T> extends Component<
3131
IrisGridPartitionSelectorState
3232
> {
3333
static defaultProps = {
34-
onAppend: (): void => undefined,
3534
onChange: (): void => undefined,
3635
onFetchAll: (): void => undefined,
3736
onDone: (): void => undefined,
@@ -73,7 +72,7 @@ class IrisGridPartitionSelector<T> extends Component<
7372

7473
const { onAppend } = this.props;
7574
const { partition } = this.state;
76-
onAppend(partition);
75+
onAppend?.(partition);
7776
}
7877

7978
handleCloseClick(): void {
@@ -155,7 +154,8 @@ class IrisGridPartitionSelector<T> extends Component<
155154
}
156155

157156
render(): JSX.Element {
158-
const { columnName, dh, getFormattedString, onDone, table } = this.props;
157+
const { columnName, dh, getFormattedString, onAppend, onDone, table } =
158+
this.props;
159159
const { partition } = this.state;
160160
const partitionSelectorSearch = (
161161
<PartitionSelectorSearch
@@ -205,13 +205,15 @@ class IrisGridPartitionSelector<T> extends Component<
205205
>
206206
Ignore &amp; Fetch All
207207
</button>
208-
<button
209-
type="button"
210-
className="btn btn-outline-primary btn-append"
211-
onClick={this.handleAppendClick}
212-
>
213-
Append Command
214-
</button>
208+
{onAppend !== undefined && (
209+
<button
210+
type="button"
211+
className="btn btn-outline-primary btn-append"
212+
onClick={this.handleAppendClick}
213+
>
214+
Append Command
215+
</button>
216+
)}
215217
<button
216218
type="button"
217219
className="btn btn-link btn-link-icon btn-close"

0 commit comments

Comments
 (0)